继承中构造函数和析构函数的调用顺序
由架构中基类的设计想到的...... 现在,有三个类,类的定义如下 #include <iostream> using namespace std; class CA { public: CA(){ cout << "CA constructor" << endl; } ~CA(){ cout << "CA destructor" << endl; } }; class CB:public CA { public: CB(){ cout << "CB constructor" << endl; } ~CB(){ cout << "CB destructor" << endl; } }; class CC:public CB { public: CC(){ cout << "CC constructor" << endl; } ~CC(){ cout << "CC destructor" << endl; } }; int main(int argc, char* argv[]) { CC c; return 0; } CA 是爷爷, CB 是爸爸, CC 是儿子。 那么任何一本 C++ 的书都会讲,构造函数的调用顺序是 CA CB CC ,析构函数的调用顺序是 CC,CB,CA ,什么???你的书没讲,靠,扔了吧。 于是, 这个程序运行结果是 CA constructor CB