在C++中,当创建一个派生类对象时,基类的构造函数会在派生类对象构造之前被调用。你可以通过以下几种方式调用基类构造函数:
- 默认构造函数:如果基类有一个默认构造函数(没有参数),你可以在派生类构造函数的初始化列表中直接使用
base_class_name()
来调用它。例如:
class Base { public: Base() { // 基类构造函数实现 } }; class Derived : public Base { public: Derived() : Base() { // 调用基类默认构造函数 // 派生类构造函数实现 } };
- 带参数的构造函数:如果基类有一个带参数的构造函数,你需要在派生类构造函数的初始化列表中显式地调用它,并传递相应的参数。例如:
class Base { public: Base(int x) { // 基类构造函数实现 } }; class Derived : public Base { public: Derived(int x) : Base(x) { // 调用基类带参数的构造函数 // 派生类构造函数实现 } };
- 继承构造函数:从C++11开始,你可以使用
using
声明来继承基类的构造函数。例如:
class Base { public: Base() { // 基类构造函数实现 } Base(int x) { // 基类带参数构造函数实现 } }; class Derived : public Base { public: using Base::Base; // 继承基类的所有构造函数 };
这样,Derived
类就会继承Base
类的所有构造函数,可以直接使用Derived()
和Derived(int x)
来创建派生类对象。