继承类中的构造函数?
constructor in inherited class?
我正在学习C++中的类继承,并阅读以下内容:
构造派生类时,构造其基类部分 第一。操作顺序为:
1( 构造基类成员
2( 基类构造函数代码被调用
有人可以解释 1 和 2 之间的区别吗? 如何在不调用基类构造函数的情况下构造基类成员?这不是构造函数的工作吗?
在尝试理解派生类构造之前,您应该了解类构造。类是如何构造的?构造类时,首先构造其数据成员。构造函数中的执行顺序为:
- 构造类成员。
- 构造函数主体被调用。
如何在不调用构造函数的情况下构造类成员?它们不是,因为这是构造函数工作的一部分。调用构造函数,此时构造函数构造类成员,然后构造函数执行其主体(在你正在阅读的任何内容中称为它的"代码"(。
MyClass::MyClass() // <-- entry point for the constructor
// <-- construct members
{ /* do stuff */ } // <-- the body/code
您可以通过初始化列表控制成员构造,也可以回退到成员的默认构造。
准备好继承了吗?唯一的补充是基类被添加到初始化列表的开头。
Derived::Derived() // <-- entry point for the derived class constructor
// <-- construct base class (see below)
// <-- construct members
{ /* do stuff */ } // <-- the body/code
Base::Base() // <-- entry point for the base class constructor
// <-- construct members (a.k.a. step 1)
{ /* do stuff */ } // <-- the body/code (a.k.a. step 2)
更复杂,但基本上和以前一样。
相关文章:
- 具有相同名称的类的构造函数继承
- 多复制构造函数继承中的惊人行为
- CRTP 和复制/移动赋值/构造函数继承
- 复制构造函数继承动态分配的数组
- 无法从 c++ 中的构造函数继承
- 在构造函数继承中使用默认构造函数
- 构造函数继承和直接成员初始化
- C++ - 使用私有参数的构造函数继承
- 通过可变参数模板进行C++11构造函数继承
- C++11构造函数继承和不带参数的构造函数
- C++11 - 构造函数继承
- C++构造函数继承
- 使用 C++11 编译器的构造函数继承正在生成错误
- 选择性构造函数继承"Ambiguous resolution"错误
- 什么是构造函数继承
- C++对象中的构造函数继承与方法继承
- C++构造函数继承没有匹配的函数
- C++构造函数继承(从派生类调用构造函数)
- 模板构造函数继承的标准符合语法是什么
- C++构造函数继承错误