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