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
的构造函数。