看板 C_and_CPP 關於我們 聯絡資訊
大家好, 又來向大家請教 假設我宣告類別如下 class test{ public: class(){ cout<<"constructor acted"<<endl; } ~class(){ cout<<"destructor acted"<<endl; } }; 我想要在主程式中檢查解構子是否有執行 該用怎麼樣的中斷法才能看到"destructor acted"訊息? 我一般將system("pause")與return 放在程式的尾端 可是程式都只執行完建構子就暫停了 是否有其他的中斷法可以用來檢視解構子的訊息呢 有勞各位幫我解答, 十分感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.69.128.66
VictorTom:你的ctor與dtor的name都寫錯了, 是test不是class.... 06/01 12:56
VictorTom:如果你是用 test t; 這樣的方式測試, 給它加個{}像 06/01 12:56
VictorTom:main{ { test t; } return 0; } 這樣就行了.... 06/01 12:57
VictorTom:因為你單純宣告local, 等變數遇到{}結束才會呼叫到dtor 06/01 12:57
VictorTom:不然就是自己new/delete, 就可以抓到更直接的時間點@_@" 06/01 12:58
loveflames:在主程式加上{} 06/01 12:58
loveflames:不然就是用atexit()來中斷 06/01 12:59
diabloevagto:你應該是建構子的名字用錯了吧,名稱要跟CLASS相同 06/01 13:02
loveflames:但是不能delete local的位址,雖然能執行解構子 06/01 13:04
loveme00835:多加大括號把物件定義在裡面你就看得到訊息了 06/01 13:27
jehovah:命名都打錯, 讓各位見笑了:) 另外感謝解答, 明白了! 06/01 13:54