温馨提示×

C++继承机制怎样调用基类构造函数

c++
小樊
89
2024-11-08 23:41:26
栏目: 编程语言

在C++中,当创建一个派生类对象时,基类的构造函数会在派生类对象构造之前被调用。你可以通过以下几种方式调用基类构造函数:

  1. 默认构造函数:如果基类有一个默认构造函数(没有参数),你可以在派生类构造函数的初始化列表中直接使用base_class_name()来调用它。例如:
class Base {
public:
    Base() {
        // 基类构造函数实现
    }
};

class Derived : public Base {
public:
    Derived() : Base() { // 调用基类默认构造函数
        // 派生类构造函数实现
    }
};
  1. 带参数的构造函数:如果基类有一个带参数的构造函数,你需要在派生类构造函数的初始化列表中显式地调用它,并传递相应的参数。例如:
class Base {
public:
    Base(int x) {
        // 基类构造函数实现
    }
};

class Derived : public Base {
public:
    Derived(int x) : Base(x) { // 调用基类带参数的构造函数
        // 派生类构造函数实现
    }
};
  1. 继承构造函数:从C++11开始,你可以使用using声明来继承基类的构造函数。例如:
class Base {
public:
    Base() {
        // 基类构造函数实现
    }

    Base(int x) {
        // 基类带参数构造函数实现
    }
};

class Derived : public Base {
public:
    using Base::Base; // 继承基类的所有构造函数
};

这样,Derived类就会继承Base类的所有构造函数,可以直接使用Derived()Derived(int x)来创建派生类对象。

0