shared-ptr

    -2熱度

    1回答

    我對共享指針的一個基本問題,在接下來的示例代碼: int main() { std::shared_ptr<int> sp; // empty std::shared_ptr<int> sp2; sp.reset (new int); sp2.reset (new int); *sp=10; *sp2=400; sp2=sp; std::shared_ptr<int> s

    1熱度

    2回答

    在C++ 11 &以上什麼優點或缺點存儲一std::thread直接像這樣類的成員時: std::thread my_thread; 與之相對到存儲std::shared_ptr或std::unique_ptr到線程像這樣: std::shared_ptr<std::thread> my_thread_ptr; 是任意的代碼選項優於其他?或者,這並不重要,只需2種不同的方式來處理線程對象。

    -1熱度

    2回答

    這裏的優勢是兩個單身,是什麼使第一個可取,因爲雙方將實例對應的類只有一個實例: 第一: class SharedPointerSingleton { public: static std::shared_ptr< SharedPointerSingleton> getSingleton( { if(s_pSingleton== 0) s_pSingleton =

    0熱度

    1回答

    我需要從代碼中的某個點開始處於活動狀態,直到某個任務開始執行。 就像例如: shared_ptr<FromThisPointToTaskStart> ftptts = make_shared<FromThisPointToTaskStart>(); . . . runningTask.then([ftptts](task<void> task) { . . . try{

    4熱度

    1回答

    是否有可能使用make_shared以及一個指向shared_ptr <>指向的數組的自定義刪除器(以下是我嘗試通過構造函數執行操作的方式,但我不知道如何通過使用make_shared工作)? int n = 5; shared_ptr<int> a(new int[n], default_delete<int[]>()); 我想做些什麼使它看起來像類似於這樣的東西,而是與一個int數組分配

    0熱度

    1回答

    我在C++中使用基類來模仿Java中的接口,所以我不必爲每個創建的不同類重複一些代碼或創建對象。 基本上它包含RefPtr到一個GtkBuilder,我將在整個應用程序中使用。 但我發現,程序終止,只要我從繼承類訪問它。 class SetupUIClass{ public: SetupUIClass(std::string builderResourceString, Glib::u

    -5熱度

    1回答

    我有這個代碼,我試圖在兩個不同的類中使用相同的模板。當我編譯,我得到錯誤: #include <iostream> #include <memory> template <class T> class Node { public: int value; std::shared_ptr<Node> leftPtr; std::shared_ptr<

    3熱度

    2回答

    正如在Difference in make_shared and normal shared_ptr in C++的回答中所指出的,在大多數情況下,make_shared勝過shared_ptr。 那麼爲什麼C++標準將shared_ptr和make_shared都定義在一起?有什麼情況下我應該更喜歡shared_ptr到make_shared甚至在哪個我只能使用shared_ptr而不是make

    2熱度

    1回答

    工作目前我正在學習C++,從C#/ Java的背景的,使用的Visual Studio 2017 我有關於創建於堆中的對象和正確引用它們在路上的問題。到目前爲止,我遇到了多個教程和做事的方式。有些人建議儘可能多使用智能指針,其他人則發誓其the devils tool。 我現在的主要如下所示: //Main Person *makePerson() { string name;

    3熱度

    1回答

    我正在設計一個基於virtual方法的C++類接口,以便能夠提供可擴展性點。 很多這些公共方法都需要heap分配的對象作爲參數。 由於我正在使用現代C++模式,因此我打算使用std::unique_ptr或std::shared_ptr,但我對它們都有疑問。 使用std ::的unique_ptr看起來是這樣的: class IFoo { virtual void doSomething