destructor

    0熱度

    1回答

    我正在瀏覽本網站http://eli.thegreenplace.net/2009/06/12/safely-using-destructors-in-python,我寫了完全相似的代碼。 但是在我的代碼中,一旦對象超出範圍,destructor就會被調用。但是在上面的鏈接中提到的代碼destructor在代碼結束後被調用。怎麼樣? 這裏是代碼;從鏈接 代碼 class FooType(objec

    8熱度

    2回答

    我閱讀不同的方式來清理對象在Python中,我已經對這些問題跌跌撞撞(1,2)基本上說,清理使用__del__()是不可靠的,下面的代碼應避免: def __init__(self): rc.open() def __del__(self): rc.close() 問題是,我正在使用此代碼,並且我無法再現上述問題中引用的任何問題。據我所知,我不能替代with聲明,因爲我

    1熱度

    2回答

    最近,我經常通過爲operator=分配一個新值來重置對象。我的大多數課程都使用「複製和交換」慣用語定義了copy constructor和operator=。在大多數情況下,它工作正常,雖然效率不如以前,但大多並不重要。有一種情況下,這不起作用。它的時候需要在新對象的constructor之前調用destructor。 注:最讓我使用這個類是不可複製 class Foo { public:

    13熱度

    2回答

    某些開發人員顯式調用構造函數和析構函數以獲取某些解決方法。我知道,這不是一個好的做法,但似乎是爲了實現某些場景。 例如,在本文中,Beautiful Native Libraries,作者使用這種技術。 在下面的代碼,到了最後,可以看出,構造函數是顯式調用: #include <limits> template <class T> struct proxy_allocator {

    4熱度

    1回答

    比方說,我有東西,看起來像這樣: struct foo { ~foo() = delete; } 而且我們說,我以後動態分配foo類型的對象: foo *f = new foo; 這是罰款;我認爲合成的默認構造函數用於構造由f表示的對象,但是: foo f2; 給我一個錯誤: Attempt to use a deleted function 因此,如何通過f表示的對象,如

    1熱度

    2回答

    對於下面的代碼 struct MyInt { MyInt() { std::cout << "I am the constructor for " << val << "\n"; } ~MyInt() { std::cout << "I am the destructor for " << val << "\n"; } in

    0熱度

    2回答

    我有一個樹結構,其中每個節點都包含一個指向其父對象及其子對象向量的指針。我的本意是,當一個節點被刪除,但刪除其子女,這反過來又刪除自己的孩子,等 Compartment::Compartment(int inpID, eType inpEnum, double inpX, double inpY, double inpZ, double inpR, Compartment* inpParent){

    1熱度

    1回答

    我有一個項目,涉及通過I2C交換機(PCA9548)與OneWire芯片(DS2431)通信。我想要做的就是正確配置交換機(只需向其狀態寄存器寫入一個字節),然後使用mbed SDA引腳進行OneWire通信。交換機不關心SDA線(它甚至可以在兩個方向上傳遞DC),並且我已經使用OneWire成功進行了測試。問題是將軟件從I2C切換到同一引腳上的OneWire。我試過這個簡單的方法:製作一個全球性

    0熱度

    1回答

    當我關閉qdialog_search的父窗口(一個主窗口)時,qdebugger在qdialog_search析構函數中證明了一個segm錯誤。 qdialog_search是從QDialog派生的(也許這是問題)。 這是代碼: //.h #ifndef QDIALOG_SEARCH_H #define QDIALOG_SEARCH_H #include <QDialog> #includ

    0熱度

    1回答

    作爲學校作業的一部分,我們必須創建一個抽象類並使用一個寄存器類來包含它們。抽象類有兩個下類。 喜歡動物>狗/貓 在這個任務中,我們必須做一個賦值操作符,但是在使用我所做的那個之後,程序出了問題。 我製作了兩個寄存器 r1; r2; 然後使用運營商 r2 = r1; ,並在程序退出時,它進入R1的destruktor,刪除它,到達R2,並得到「訪問衝突讀取位置」 我猜這是因爲運營商創建了一個從指針r