子类包含父类成员的构造与析构顺序
#include <iostream> using namespace std; class F1{ public: F1() {cout << "F1 构造函数" << endl;} ~F1() {cout << "F1 析构函数" << endl;} }; class F2{ public: F2() {cout << "F2 构造函数" << endl;} ~F2() {cout << "F2 析构函数" << endl;} }; class F3{ public: F3() {cout << "F3 构造函数" << endl;} ~F3() {cout << "F3 析构函数" << endl;} }; class Son : public F2 , public F1 , public F3{ public: Son() {cout << "Son 构造函数" << endl;} ~Son() {cout << "Son 析构函数" << endl;} F1 f1; F2 f2; }; int main() { Son s; return 0; }
结果显示,先根据子类的继承顺序调用父类的构造函数,然后根据子类内部成员的声明顺序调用父类构造函数,最后才调用子类的构造函数。析构函数的调用顺序则相反。
F2 构造函数 F1 构造函数 F3 构造函数 F1 构造函数 F2 构造函数 Son 构造函数 Son 析构函数 F2 析构函数 F1 析构函数 F3 析构函数 F1 析构函数 F2 析构函数
标签:F1,函数,子类,析构,与析构,父类,构造函数 From: https://www.cnblogs.com/uacs2024/p/18060943