C++中,继承时,创建子类对象,能否在子类构造函数初始化列表里调用基类构造函数?
然后基类构造函数里直接初始化基类private成员??这一步在子类构造函数右边的初始化列表里进行?...
然后基类构造函数里直接初始化基类private成员??这一步在子类构造函数右边的初始化列表里进行?
展开
2013-07-29
展开全部
//如果基类没有默认构造函数,则子类的构造函数必须要给定基类的构造函数参数。因为,在类的实例化时是先执行基类构造函数在执行子类构造函数。子类构造函数初始化列表后面直接列出基类构造函数即可,系统会自动调用,不用用户调用。
class A{
public:
A(int x,int y):x(x),y(y){}
private:
int x; int y;
};
class B:public A{
public:
B(int x,int y,int z):A(x,y),z(z){} //子类构造函数初始化列表必须给出基类所需参数
};
class A{
public:
A(int x,int y):x(x),y(y){}
private:
int x; int y;
};
class B:public A{
public:
B(int x,int y,int z):A(x,y),z(z){} //子类构造函数初始化列表必须给出基类所需参数
};
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询