C++中,构造基类是靠初始化列表么?

就是说,爷类,父类,子类。都是只有默认构造函数。创建子类对象。那么子类构造函数的初始化列表里自动生成父类构造函数(去调用)。调用父类构造函数时,父类的构造函数初始化列表里... 就是说,爷类,父类,子类。都是只有默认构造函数。创建子类对象。那么子类构造函数的初始化列表里自动生成父类构造函数(去调用)。调用父类构造函数时,父类的构造函数初始化列表里又有爷类构造函数 展开
 我来答
yuantailing
2013-08-07 · TA获得超过2545个赞
知道小有建树答主
回答量:1167
采纳率:92%
帮助的人:658万
展开全部
是的,你都分析得那么清楚了。
子类构造函数必须对父类进行初始化,否则出错,父类有默认构造函数的时候可以不显式初始化。
更多追问追答
追问
如果我在类中都定义了一个无参数构造函数,那么创建时我不手动初始化列表,能顺利完成创建吗
追答

能,会自动调用默认构造函数(就是无参的那个)。

验证一下:

#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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友68b536adee5
2019-05-08 · TA获得超过1045个赞
知道小有建树答主
回答量:1822
采纳率:100%
帮助的人:8.4万
展开全部
不能,你自己写的构造函数体,是在初始化列表执行之后才执行,也就是如果不写在列表里,就会调用默认构造函数构造基类对象部分。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式