C++中,构造基类是靠初始化列表么?
就是说,爷类,父类,子类。都是只有默认构造函数。创建子类对象。那么子类构造函数的初始化列表里自动生成父类构造函数(去调用)。调用父类构造函数时,父类的构造函数初始化列表里...
就是说,爷类,父类,子类。都是只有默认构造函数。创建子类对象。那么子类构造函数的初始化列表里自动生成父类构造函数(去调用)。调用父类构造函数时,父类的构造函数初始化列表里又有爷类构造函数
展开
2个回答
展开全部
是的,你都分析得那么清楚了。
子类构造函数必须对父类进行初始化,否则出错,父类有默认构造函数的时候可以不显式初始化。
子类构造函数必须对父类进行初始化,否则出错,父类有默认构造函数的时候可以不显式初始化。
更多追问追答
追问
如果我在类中都定义了一个无参数构造函数,那么创建时我不手动初始化列表,能顺利完成创建吗
追答
能,会自动调用默认构造函数(就是无参的那个)。
验证一下:
#include <iostream>
using namespace std;
class A{
public:
int x;
A(): x(5){}
};
class B: public A{
public:
int y;
B(): y(9){}
};
int main()
{
B b;
cout << b.x << endl;
return 0;
}
自动用5初始化了父类的x
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询