August 28,2009

會自殺的類別

坦白說,我從沒想過物件可以自殺這件事情。當我看到這樣寫的時候,實在是很令我驚訝...實驗的結果,還真的是可以。
#include <iostream>

class SuicideSample {
        public:
                SuicideSample() { std::cout << "ctor." << std::endl; }
                ~SuicideSample() { std::cout << "dtor." << std::endl; }
                void DoIt( void ) { 
                        delete this;
                }
};

int main( int argc, char* argv[] )
{
        SuicideSample* obj=new SuicideSample();
        obj->DoIt();
        // of course, object can kill itself, but if you try to kill it again
        // program will crash.
        //delete obj;
        return 0;
}


Posted by elleryq at 樂多Roodo! │16:19 │回應(2)引用(0)C/C++
樂多分類:網路/3C 共同主題:C/C++ 工具:編輯本文
標籤:c++
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/9858209
回應文章

C# 有 Delete this 嗎..?還是要自己設成 dispose
Posted by saint at September 2,2009 09:12
c#/java 請把這個問題交給 GC,需要回收時,就呼叫 GC 的 Collect...
Posted by elleryq at September 2,2009 17:20