C++析构函数执行顺序
生活随笔
收集整理的這篇文章主要介紹了
C++析构函数执行顺序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天發現主程序中有多個對象時析構函數的執行順序不是對象定義的順序,而是對象定義順序反過來。
思考了一下,結合之前繼承、成員對象等的析構函數執行的順序,我覺得析構函數執行的順序為:構造函數的順序反過來,可能是用棧什么的保存?機理我也不清楚,不過測試看起來好像是這個樣子。
#include<iostream>using namespace std;class A {int id; public:static int count;A(){id = ++count;cout <<"A("<< id <<")"<< endl;}~A(){cout << "~A(" << id << ")" << endl;count--;} };int A::count = 0;int main() {A a;A b; }運行結果:
總結
以上是生活随笔為你收集整理的C++析构函数执行顺序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: lol比赛中为什么双方习惯在开局到对方野
- 下一篇: 家用投影仪3000以内,坚果G7S跟极米