【求助】關于打印結果順序的問題
代碼和視頻中的代碼一樣,就是對打印的結果順序有疑問。
結果中的“~Line”
對應代碼是“cout << "~Line()" << endl;”
結果中的“printInof()
? ? ? ? ? ? ? ? ?(1,2)
? ? ? ? ? ? ? ? ? (3,4)”
對應的代碼是:
“cout << "printInfo()" << endl;
cout << "(" << m_pCoorA->getX() << "," << m_pCoorA->getY() << ")" << endl;
cout << "(" << m_pCoorB->getX() << "," << m_pCoorB->getY() << ")" << endl;“
“~Line”的cout打印出來的,而且其代碼位置在上面,為什么打印出后卻排在了后面?
2019-08-05
構造函數和析構函數的執行順序相反,可以回去看看講這個視頻
2019-09-01
請看兩者執行順序。
注意函數的執行順序,析構函數是最后才調用的
寧外請注意:
對象成員如果無默認構造函數則必須在當前對象構造函數后使用初始化列表進行初始化,此時構造函數順序為對象成員的構造函數coordinate,當前對象的構造函數line。
對象成員指針,則應該在當前對象的構造函數中調用本身的構造函數初始化,此時構造函數調用順序為當前對象的構造函數line,對象成員指針的構造函數coordinate。