如果我执行以下操作,我对会发生什么感到有点困惑:
class a{
int i;
public:
a(){}
};
class b: public a{
};
int main(){
b b1;
}
既然类 b
没有构造函数,它使用什么构造函数?它是否使用a
的默认构造函数?或者它自己的编译器生成了一个?
最佳答案
将调用两个构造函数 - 第一个构造函数 a
用于基类初始化,然后是构造函数 b
。由于您没有为 b
定义构造函数,因此编译器会为您生成一个默认构造函数。由于您的 b
类没有任何需要构造的成员,因此默认构造函数将为空。
关于c++ - 一些简单的构造函数代码的解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8843921/