类成员初始化问题 09.2.23

来源:互联网 发布:windows共享给linux 编辑:程序博客网 时间:2024/05/18 22:47

由于初始化顺序是从基类到派生类的
基类的构造函数负责初始化基类与派生类的构造数负责初始化派生类,
在MFC中N层继承类库中,都是不同层中的类负责初始化自己本身和调用上一级构造函数进行初始化
 
如何在派生类初始化从基类中继承来的protected成员和基类的private成员呢?
答案是:
在派生类的构造函数间接的调用基类构造函数来实现,派生类的初始化列表必须明确指出基类的初始化式

1.无参数的构造函数
格式:构造函数名():(基类构造函数(),派生类成员d1(值),d2(值),n(值){}
2.有参数的构造函数
格式:
构造函数名(基类参数...派生类参数...)
   :(基类构造(b1(参数),b2(参数)),派生类成员d1(参数),d2(参数),n(参数){}
class bulk_item: public item_base{
public: 
 //1.派生类无参数的构造函数 
 bulk_item():(item_base(),int_qty(0),discount(0.0){}
 //2.派生类有参数的构造函数 
 bulk_item(std::string& book=/"/",double s_price=0.0,int qty=0,double dis=0.0)//函数参数
            :item_base(book,s_price),int_qty(0),discount(0.0){} //初始化列表
private:
 int min_qty;
 double discount;
}; 
 
3.设计指导
3.1初始化方式选择:
无参数的构造函数:主要用初始化列表来初始化成员变量
有参数的构造函数:默认形参+初始化列表的构造函数 
 
3.2派生类的初始化顺序
由于初始化顺序是从基类到派生类的,在初始化列表中应该先初始化基类,然后再是派生类本身
如果要求程序高性能,使用初始列表是C++的生产首选,对于习惯于C的程序员,在函数体初始化成员也是可行。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 卖家送运费险买家填错单号怎么办 买家无赖点了延迟收货卖家怎么办 淘宝卖家快递单号填错了怎么办 淘宝店有当天的快递忘记发货怎么办 在美国官网买东西少寄了东西怎么办 闲鱼退货货收了不退钱怎么办 闲鱼退货卖家收到东西不退钱怎么办 淘宝店铺物流服务给差评怎么办 在合肥东方融资网被骗了怎么办 微信今年绑定频繁明年再试怎么办 手机号码注销了微信密码忘了怎么办 摄像师把婚礼资料弄丢了怎么办 青岛拍的婚纱照修的不好怎么办 鞋店剩的鞋都是小码的怎么办 淘宝想买的衣服下架了怎么办 买家要求到付仲裁发生运费怎么办 淘宝退货退款页面刷新不出来怎么办 淘宝退货退款快递单号写错了怎么办 淘宝上已经退款的店家还发货怎么办 千牛买家下单付款了卖家怎么办 京东货到付款支付宝支付退款怎么办 美萍餐饮管理系统下单错误怎么办 淘宝店上传宝贝显示空间不足怎么办 淘宝店品牌被投诉未授权怎么办 淘宝天猫退货单号填错了怎么办 淘宝退货我把快递单号弄丢了怎么办 唯品会退货快递单号填错了怎么办 天猫换货写错运单号怎么办 训练衣舍的店铺名连接怎么办 兼职模特被骗去微整还贷了款怎么办 卖家已经发货了我要退款怎么办 卖家显示发货单号信息查不到怎么办 淘宝申请退款卖家发货了怎么办 咸鱼卖家不发货好会自动退款怎么办 淘宝卖家涨价后不发货怎么办 淘宝卖家发货选错在线下单怎么办 申请退款后卖家又虚假发货了怎么办 公司用淘宝没发票做账怎么办 淘宝网买了假货确认了怎么办? 吃了安眠药睡了一天还没有醒怎么办 淘宝买的东西退货快递弄丢了怎么办