溫馨提示×

C++繼承機制怎樣調用基類構造函數

c++
小樊
183
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
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女