class mycs {
public:
mycs() { cout << "構造函數" << endl; exit(1); }
~mycs() { cout << "析構函數" << endl; }
};
mycs cs; // 全局對象
int main() { return 0; }
輸出僅「構造函數」,析構函數不執行。若 exit 放在其他位置(如 main 中),析構函數正常執行。
exit() 立即終止進程,將控制權交還作業系統。main 返回後、進程退出前由 C++ 運行時自動調用。exit 繞過了正常的程序退出流程,運行時沒機會調用已構造對象的析構函數。exit、abort、_Exit 等直接終止進程的函數。atexit 註冊的函數在 exit 時會被調用,但 C++ 對象析構不在其列。