Re: [問題] 關於Loki::Singleton 的解構

看板C_and_CPP (C/C++)作者 (acer)時間16年前 (2009/07/06 01:08), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串3/6 (看更多)
※ 引述《adxis (acer)》之銘言: : // 完整(修正) : #include <vector> : #include "loki/Singleton.h" : #include "loki/SmartPtr.h" : class Obj{ : friend struct Loki::CreateUsingNew< Obj>; : friend struct Loki::DefaultSPStorage <Obj>; : private: : std::vector< Loki::SmartPtr<Obj> > innerCont; : Obj(){} : ~Obj(){} 這邊很重要 一個 singleton 應該是讓 SingletonHolder去管理 destruction 所以第二個 friend 就跟這個原則衝突了 : public: : void Add(){ : Loki::SmartPtr<Obj> sp = new Obj; : innerCont.push_back(sp); : } : }; : typedef Loki::SingletonHolder< Obj > SingletonObj; : int main() : { : SingletonObj::Instance().Add(); : return 0; : } 如果硬是要讓這個 class 可以用 我目前只知道在 ~Obj(){ } 裡面直接離開程式 會這樣用也是因為我實際需求上他也是最後一個解構的 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.101.186

07/06 02:54, , 1F
其實只要不用SmartPtr就可以了 耍蠢阿 0rz
07/06 02:54, 1F
文章代碼(AID): #1AKDuLyG (C_and_CPP)
文章代碼(AID): #1AKDuLyG (C_and_CPP)