一个类的构造函数中可以不包含对其子对象的初始化啊

2024-12-27 18:11:03
推荐回答(3个)
回答1:

不太明白你问的是什么意思,我想你问的意思应该是“一个类的构造函数中可不可以不包含对其子对象的初始化啊?”,如果是这个意思,我想我能回答这个问题:
如果其子对象的构造函数中有参数则就必须包含对其子对象的初始化,反之,则不包含。其实,传不传参数取决于该对象所属类的构造函数是否有参数,不管在哪种情况下都遵循这个规律。

回答2:

在构造函数体执行前,会执行类的初始化序列。
ClassA::ClassA()
: ... ... // 冒号后面的代码就是初始化序列
{
... ... // 这里才是构造函数体
}

一般,类的成员应该在初始化序列里显式的初始化。
但如果你不这么做,编译器也会帮你调用这个成员所属类的默认构造函数来初始化这个成员。
但是如果这个成员所属的类没有默认构造函数,那编译就会报错。这时你必须在成员初始化序列中显示的初始化这个成员。

回答3:

从语法角度来讲没有问题,但应用可能会存在问题