c++类成员析构顺序是怎么样的?
c++类成员析构顺序是怎么样的?
按道理说是 :
1 成员先构造
2类自己再构造
析构的顺序是先2再1
但是我加打印怎么不是阿 ?
[解决办法]
class Test{public: Test() { } ~Test() { cout<<"Test destructor"<<endl; }};class Test1{public: Test1() { } ~Test1() { cout<<"Test1 destructor"<<endl; }};class Test2{public: Test2() { } ~Test2() { cout<<"Test2 destructor"<<endl; }private: Test a; Test1 b;};int main(){ Test2 *c=new Test2; delete c; system("pause"); return 0;}
[解决办法]
构造的时候 先 成员的 再自己的
如果有多个成员
按成员在类中的声明顺序而非初始化成员列表的顺序
析构和构造相反