destructor

    1熱度

    1回答

    如何爲具有std :: enable_if參數的模板類編寫外聯析構函數體? (我需要這個寫一個裝飾器,爲其他對象類型添加一個標識符)。 代碼: template<typename T, typename std::enable_if<std::is_base_of<X,T>::value>::type* = nullptr> class IdentifiedInstance: public T

    4熱度

    4回答

    關於在C++中銷燬靜態變量的順序,是否有任何有關靜態對象相對於其靜態成員變量的生命週期的保證? 舉例來說,如果我有這樣的事情(瘋狂簡化的例子僅用於演示目的): class Object { static std::vector< Object * > all_objects; public Object() { all_objects.push_back(thi

    0熱度

    2回答

    當我刪除鏈接列表中的節點時,是否需要將next設置爲NULL? 的ListNode被定義爲這個 struct ListNode { int val; ListNode* next; ListNode(int x): val(x) {} } 現在我想m ListNode *tmp = m->next; m->next = m->next->next; dele

    0熱度

    2回答

    我在讀this後,我想澄清,我是否需要顯式刪除動態創建的對象的成員變量? 例如,我有一個類帶有兩個成員變量, class pointCloud { public: pointCloud(); void addPoint(int); point getPoint(int); private: int id; std::vector<point

    1熱度

    2回答

    下面的代碼是否表示內存泄漏? 不調用Test類的析構函數(屏幕上沒有輸出),我假設所有分配給Int類數組的內存都不會返回給系統?我的假設是否正確?如果發生異常,我應該如何聲明在構造函數中分配的資源? #include <iostream> using namespace std; class Int{ public: int v; Int(){

    13熱度

    1回答

    goto或switch可以跳過一個聲明語句,因爲它沒有初始值設定項,而且結構也很平凡 - 而且對象也很平凡。破壞。 對析構函數的約束是什麼原理? struct trivial { trivial() = default; ~ trivial() = default; }; struct semi_trivial { semi_trivial() = defaul

    -1熱度

    1回答

    我搜索了這個問題,但是我找不到它,如果它是一個沒有提供否定點的重複問題,請告訴我答案的鏈接。 在學生類我有很多成員,但其中四個是由運營商新的方法公開呼籲設置 我寫的只是其中的一個在這裏創建: class Student{ private: float *tp; .... } 這裏是設置是公共的方法: void Student::set(int field, in

    0熱度

    1回答

    我嘗試這樣做的代碼: #include <iostream> using namespace std; class A { public: A(){cout<<"A();";} ~A(){cout<<"~A();";} }; class B : public A { public: B(){cout<<"B();";} ~B(){cout<<"~B();";} };

    2熱度

    4回答

    我有簡單的C++程序,它使用方法鏈接,並且我注意到析構函數僅在鏈式調用中被調用兩次。只有鏈調用也包含構造函數時纔會發生這種情況。如果單獨調用析構函數只調用一次。 代碼如下: class Foo { public: Foo() { cout << "-- constructor " << this << endl; } ~Foo() { cout << "-- destruct

    -4熱度

    2回答

    我做了一個使用list-node的堆棧類。 但一個正常工作,另一個總是崩潰。 兩個程序有什麼區別? 我thimk析構函數銷燬 #include<iostream> using namespace std; class Stack { public: int pop() { data = next->data; auto tmp = next;