溫馨提示×

C++類的繼承構(gòu)造函數(shù)調(diào)用

c++
小樊
81
2024-10-31 10:40:54
欄目: 編程語言

在C++中,當(dāng)使用繼承時,基類(父類)的構(gòu)造函數(shù)會在派生類(子類)的構(gòu)造函數(shù)體執(zhí)行之前被調(diào)用。這是為了確?;惖某蓡T變量和方法在派生類對象創(chuàng)建時已經(jīng)初始化。

以下是一個簡單的例子,展示了如何在C++中使用繼承和構(gòu)造函數(shù)調(diào)用:

#include <iostream>

// 基類
class Base {
public:
    Base() {
        std::cout << "Base constructor called" << std::endl;
    }
};

// 派生類
class Derived : public Base {
public:
    Derived() {
        std::cout << "Derived constructor called" << std::endl;
    }
};

int main() {
    Derived d; // 當(dāng)創(chuàng)建Derived類的對象時,首先調(diào)用Base類的構(gòu)造函數(shù),然后調(diào)用Derived類的構(gòu)造函數(shù)
    return 0;
}

在這個例子中,當(dāng)我們創(chuàng)建一個Derived類的對象時,首先會調(diào)用Base類的構(gòu)造函數(shù),然后調(diào)用Derived類的構(gòu)造函數(shù)。輸出結(jié)果如下:

Base constructor called
Derived constructor called

注意,如果在基類構(gòu)造函數(shù)中調(diào)用了虛函數(shù),那么在派生類構(gòu)造函數(shù)中調(diào)用該虛函數(shù)時,將不會表現(xiàn)出多態(tài)性。這是因為基類構(gòu)造函數(shù)在派生類構(gòu)造函數(shù)之前執(zhí)行,此時派生類的部分尚未初始化。

0