www.fltk.net > C++派生类构造函数基类的数据成员初始化

C++派生类构造函数基类的数据成员初始化

class base1{ public: base1(int i){cout<<"construct base1"<<endl;} private: int love; };//基类,所给的没有数据成员 class PaiSheng:public base1 { public: PaiSheng(int i):base1(i) //将基类数据成员用到派生类中 { } //基类和派生类本身就有联系,继承它的成员的话就不用在声明一个新的成员,是代码利用率高 }; void main() { PaiSheng love(4); //因为派生类初始化是继承基类的构造函数,所以派生类初始化的结果是“construct base1” }

初始化列表用来初始化:(1)本类的普通成员;(2)本类的对象成员;(3)基类的成员(调用基类构造函数实现).所以,答安是第3个.

楼主指的是初始化列表进行成员变量初始化?初始化表初始化,遵循的原则是构造函数之前执行;派生类在构造函数的初始化列表中调用基类的构造函数;由以上两点综合一下,你的想法基本正确.

确实不对啊,你的这些函数里面第二、三个都不正确啊,先说第二个吧 SDK(const SDK &rhs)是拷贝构造函数吧,那么你给的是某个SDK对象的地址rhs是吧,那你应该这样定义: SDK(const SDK &rhs){if(rhs!=NULL){the Date=rhs->theDate;

举个简单的例子: #include using namespace std; class point { //定义点的类 public: point(double x0,double y0) {x=x0;y=y0;} void showpoint() {coutdiaplay(); delete c; system("pause"); return 0; } 输出: 1 1 2 因为构造函数和析构函数不能继承,所以派生类的构造函数方式为: 派生类类名(派生类数据成员参数列表):基类类名(基类参数列表),派生类新增数据成员(参数列表){}

MultiInerit ::MultiInerit(int BaseOneInn,int BaseTwoInn,int MulitiIn):BaseOne (BaseOneIn),BaseTwo (BaseTwoIn) //在这里出错,应该怎么改?这里改成:MultiInerit ::MultiInerit(int BaseOneIn,int BaseTwoIn,int MulitiIn):BaseOne (BaseOneIn),BaseTwo (BaseTwoIn) //BaseOneInn为什么多加一个n?

在派生类的构造函数中,首先调用基类的构造函数进行执行,然后再对派生类特有的成员变量进行初始化.

Son a(4.4,3):Father(给个确定的值); 用初始化列表 来初始化

[图文] 对基类数据成员的初始化必须派生类的构造函数中的_处执行. 请帮忙给出正确答案和分析,谢谢! 悬赏: 0 答案豆 提问人:00****20 如果一个班主任可管理多个班级,而一个班级只被一个班主任管理

网站地图

All rights reserved Powered by www.fltk.net

copyright ©right 2010-2021。
www.fltk.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com