2013-06-20 26 views
0

我有一個帶有「連接」和「斷開」按鈕的Windows窗體程序。如何在Windows窗體C++中使用對象

當連接按鈕被點擊我自己的類的對象應創建:

private: System::Void Connect_Click(System::Object^ sender, System::EventArgs^ e) { 
    my_class new_object(); 
    return; 
} 

Connect按鈕被點擊後,可切斷按鈕變爲啓用,且對象應該被刪除:

private: System::Void Disconnect_Click(System::Object^ sender, System::EventArgs^ e) { 
      //delete new_object 
      return; 
     } 

問題是,我真的不知道如何從另一種方法刪除我的對象。我如何將new_object傳遞給Disconnect方法?

+0

您的對象在事件處理程序結束時由缺省析構函數刪除。爲了從幾個事件處理程序訪問你的變量,你必須使它成爲全局變量。 –

+0

好吧,有沒有辦法創建對象,而不會在事件句柄結尾刪除它? 單擊Connect按鈕時應該創建它。然後會有一個發送按鈕,它會調用該對象的某些方法,最後在點擊斷開連接按鈕時它應該被刪除。 – MJA

+0

使其成爲全球。同樣如上所述,如果你想從幾個處理程序訪問它,它必須是全球性的。 –

回答

0

爲了能夠訪問多個處理程序中的任何變量,必須將這些變量設置爲全局變量。使用而不是delete運算符刪除對象。

另外它是一個明顯調用析構函數的壞習慣。在你的情況下,如果你將它稱爲程序,它將在執行結束時崩潰,編譯器將再次調用它自己的所有對象的析構函數,並嘗試釋放由內存釋放的allready。

相關問題