C++繼承機(jī)制的構(gòu)造順序是怎樣

c++
小樊
81
2024-11-08 23:43:24
欄目: 編程語言

C++的繼承機(jī)制中,構(gòu)造函數(shù)的執(zhí)行順序如下:

  1. 基類構(gòu)造函數(shù):首先執(zhí)行基類的構(gòu)造函數(shù)。這是為了初始化繼承自基類的成員變量和繼承基類的部分。

  2. 派生類成員變量初始化:在基類構(gòu)造函數(shù)執(zhí)行完畢后,開始執(zhí)行派生類中的成員變量的初始化。這是為了初始化在派生類中聲明的成員變量。

  3. 派生類構(gòu)造函數(shù):最后執(zhí)行派生類的構(gòu)造函數(shù)。這是為了初始化在派生類中聲明的特定于派生類的成員變量和執(zhí)行其他派生類相關(guān)的操作。

以下是一個(gè)簡(jiǎn)單的例子:

#include <iostream>
using namespace std;

class Base {
public:
    Base() {
        cout << "Base constructor called" << endl;
    }
};

class Derived : public Base {
public:
    int x;

    Derived() {
        cout << "Derived constructor called" << endl;
        x = 10;
    }
};

int main() {
    Derived d;
    return 0;
}

輸出結(jié)果:

Base constructor called
Derived constructor called

在這個(gè)例子中,首先執(zhí)行基類Base的構(gòu)造函數(shù),然后初始化派生類Derived中的成員變量x,最后執(zhí)行派生類Derived的構(gòu)造函數(shù)。

0