destructor

    0熱度

    1回答

    我定義了一個名爲Node類和我宣佈使用std::atomic以下變量: atomic<Node *> head(new Node()); 其中所包含的Node指針將是deleted一旦原子類本身是被破壞,但是我想要指針在別處被刪除。 我正在使用MinGW,我檢查了GCC源代碼,它確實使用了默認的析構函數。 如何覆蓋原子類的默認析構函數?

    -1熱度

    1回答

    我知道無論您是否明確地創建構造函數,構造函數都會自動生成。但是是否會自動創建析構函數?如果沒有,我不得不爲每個班級製作一個,因爲沒有垃圾收集?

    -1熱度

    1回答

    我有一個類 class Foo { public: char* ptr; Foo() { ptr=new char [10]; } ~Foo() { delete [] ptr; } }; 我已經瞭解到,返回這個類的一個對象是不可能的,因爲動態分配指針是delete「ED和在創建一個懸空指針調用函數 那麼如何返回這個類的一個對象? Foo Bar()

    0熱度

    1回答

    我在C++中的代碼中遇到問題。 我有我使用和,特別是,其方法GetAllCreaturesByLevel定義如下一類數據結構: Class DataStructure; StatusType DataStructure::GetAllCreaturesByLevel(int magiID, int **creatures, int *numOfCreatures); 這種方法從main函數接

    1熱度

    1回答

    我有一個包含靜態成員變量的結構體。據稱這個成員變量的析構函數中的一行從未被執行,這是由lcov報告的。這一行只能在程序終止時執行。所以我猜它只是lcov,不能算數。 Valgrind可以揭示這條線當然是按預期執行的。 可以讓lcov統計這一行嗎? 下面是代碼: #include <cstdint> // uintX_t #include <map> // std::map #include

    2熱度

    2回答

    例如: struct B { int b_; }; struct D : B { ~D() { // D object's lifetime ends here d_ = 0; // (1) undefined behavior? b_ = 0; // (2) undefined behavior also? } int d_;

    0熱度

    1回答

    不工作我實現了析構HashMap類,拷貝構造函數和賦值操作符。當我創建一個HashMap對象併爲其添加一個鍵和值並嘗試將其分配給一個新的空對象時,我會得到一個「double free or corruption」錯誤。但是,如果我沒有添加任何密鑰到HashMap的代碼運行良好。我還注意到,如果我從賦值運算符重載實現中註釋掉arrayCopy函數,那麼代碼也可以正常運行,但當然,我分配的對象不會擁有

    2熱度

    5回答

    我已經用構造函數和析構函數聲明瞭一個簡單的類。但是,當我刪除對象時,它會給出runtime error並且不會執行其他輸出。 class Student { public: string name; Student(string name) { this->name=name; } ~Student() { this->name

    1熱度

    3回答

    我做了一個二叉樹類,它保存: int值,BinaryTree* left,BinaryTree* right。 class BinaryTree { private: int value; BinaryTree* left; BinaryTree* right; bool isVisited; public: BinaryTree();

    1熱度

    1回答

    我試圖在我創建的矩陣類上使用+和=運算符來重載運算符。無論是構造函數還是析構函數都會導致問題,或者它也不是(儘管我將它們中的每一個都變灰了,而且代碼似乎也起作用)。有人能幫助我理解什麼是造成這種奇怪的行爲。當我嘗試創建3個矩陣b和c然後嘗試a = b + c;它只是失敗。 header file #ifndef MATRIX_H; #define MATRIX_H; using namesp