auto-ptr

    0熱度

    1回答

    可能重複: Which kind of pointer do I use when? ,我讀了std::auto_ptr是過時的,因此必須使用std::tr1::shared_ptr代替。因爲我讀的差異是std::tr1::shared_ptr有引用計數,而std::auto_ptr還沒有,所以複製或分配使資源更改它的所有者,與源給所有權到目的地。這是唯一的區別嗎?

    2熱度

    2回答

    我需要使用RAII成語,我在做正確的事:? std::auto_ptr<std::vector<string>> MyFunction1() { std::auto_ptr<std::vector<string>> arrayOfStrings; MyFunction2(arrayOfStrings); // work with arrayOfStrings r

    1熱度

    1回答

    我一直在閱讀C++ auto_ptr和unique_ptr和東西,並認爲嘗試和使用它們在我正在玩的一個類中...但我無法使其正常工作... 我將這些指針轉換爲自動指針或一些等價物,因此刪除指針會自動處理? 頁眉 - http://ideone.com/Z9bc5 身體 - http://ideone.com/WfwBY 目前,它正在使用正常的指針,但我有時會收到一個訪問衝突錯誤。我很確定我知道它是

    2熱度

    1回答

    我寫了一些有缺陷的Huff壓縮代碼,我試圖修復。我做的第一件事是將指針切換到auto_ptr(有沒有原因我沒有使用另一個智能指針)。我創建了auto_ptr的矢量,但是當我嘗試通過*(vector.begin())將auto_ptr傳遞給函數時,它不起作用。 我想通過所有權轉讓給我的功能代碼(這是一個成員函數set_node): struct Node { int weight;

    1熱度

    1回答

    我正在SDL中製作遊戲,並使用SDL_VideoInfo獲取顯示器當前的分辨率。 示例代碼:(這可能會有一些拼寫錯誤或函數/變量類型的名稱錯誤,我現在正在寫我的記憶)。 #include <SDL.h> #include <iostream> using namespace std; int main() { SDL_Init(SDL_INIT_EVERYTHING);

    2熱度

    2回答

    有沒有辦法將auto_ptr設置爲NULL或等價的?舉例來說,我創建節點對象組成一個二叉樹: struct Node { int weight; char litteral; auto_ptr<Node> childL; auto_ptr<Node> childR; void set_node(int w, char l, auto_ptr<Nod

    12熱度

    2回答

    我寫了this article,並得到了一些評論,讓我困惑。 它基本上可以歸結爲我看過只是作爲一個模板參數T2,並錯誤地得出結論,我可以因此需要提前聲明的機會: struct T2; struct T1 { std::auto_ptr<T2> obj; }; 這將調用UB如果我不」牛逼去定義T2某處同恩,因爲std::auto_ptr<T2>電話delete其內部T2*,並c

    1熱度

    1回答

    我在閱讀an article關於有效使用auto_ptr。在那裏,下面的代碼被認爲是正確的一段代碼: // Example 10(c): Correct (finally!) // auto_ptr<String> f() { auto_ptr<String> result = new String; *result = "some value"; cout <

    -1熱度

    2回答

    我想用Qt庫創建爲我的應用控制面板,爲了這個,我創建類 Controls類 Controls:創建一個滑塊和自旋和標籤以水平佈局來組織它們。 但是當我想創建std::vector<Controls>該程序運行沒有錯誤,但現在控制正在創建!所以爲什麼沒有控制。 Controls.h class Controls { private: QHBoxLayout Layout ;

    2熱度

    4回答

    我想在我的代碼中使用auto_ptr,但顯然出現了問題。 auto_ptr<ClassType> Class(s.Build(aFilename)); //Instantiation of the Class object int vM = s.GetM(Class); int vS = s.Draw(Class); 奇怪的是,類的實例化後,Class對象存在,因此 通過調用s.GetMo