c++ - 一些简单的构造函数代码的解释

标签 c++ class constructor

如果我执行以下操作,我对会发生什么感到有点困惑:

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/

相关文章:

Java 构造函数被多次调用

C++ 错误 : invalid use of 'AppleFarmer::AppleFarmer' when ca

c++ - ' ' 标记简单错误之前的预期主表达式

c++ - QT 是适合我的跨平台应用程序的解决方案吗?

c++ - 对象组合 C++ : no matching function for call

c++ - 错误 : Thread 1: EXC_BAD_ACCESS (code=1, 地址=0x0)

python - 将代码 append 到继承的类方法

c++ - 使用构造函数初始化指向已定义结构的指针数组

c++ - 如何使用 cmake 添加不同的头文件夹,以便项目正确编译和运行

c++ - 使用 Visual Studio 2015 运行时,OpenCV 无法打开视频文件