C++的繼承機制中,構造函數的執行順序如下:
基類構造函數:首先執行基類的構造函數。這是為了初始化繼承自基類的成員變量和繼承基類的部分。
派生類成員變量初始化:在基類構造函數執行完畢后,開始執行派生類中的成員變量的初始化。這是為了初始化在派生類中聲明的成員變量。
派生類構造函數:最后執行派生類的構造函數。這是為了初始化在派生類中聲明的特定于派生類的成員變量和執行其他派生類相關的操作。
以下是一個簡單的例子:
#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;
}
輸出結果:
Base constructor called
Derived constructor called
在這個例子中,首先執行基類Base
的構造函數,然后初始化派生類Derived
中的成員變量x
,最后執行派生類Derived
的構造函數。