[問題] singleton遇到一個瓶頸

看板C_and_CPP (C/C++)作者 (我愛阿蓉)時間15年前 (2010/11/25 21:08), 編輯推噓0(0010)
留言10則, 3人參與, 最新討論串1/2 (看更多)
請教各位一個情況 例如 class Foo { void intit(){ try{.new 那些instance;..} catch{} } Foo() { intit(); } 這邊宣告好多指標 等待在init作new的動作 static Foo * m_Inst; public: static Foo* GetInstance() { if(m_Inst == null) m_Inst = new Foo(); return m_Inst; } }; intit(){ 做到一半可能有exception 我有catch 導致 接下來的code都沒跑 member沒 new完全 雖說這樣 我constructor還是能夠成功做完 但其實我這instance半殘 我return 也回去了 對方就拿到一個半殘的instance... 我現在想不到該如何有效的回報給外面的使用者 我寧可出現問題我Return null給他也不要他拿到後用到某method 存取錯誤 但我想到的辦法變成說需要有一個static bool flag = init(); 回報有沒有錯誤 然後雖說m_Inst new完有東西了 我在check 這flag 若失敗則return null 我這case 是不是設計不良?還是怎樣導致 我用flag去解 又覺得不太正確 請教各位 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.147.15.66 ※ 編輯: QQ29 來自: 122.147.15.66 (11/25 21:15)

11/25 21:48, , 1F
http://codepad.org/oSdjiR90 很少在用指標了說...
11/25 21:48, 1F

11/25 21:50, , 2F
糟糕@_@ 混用太嚴重了...
11/25 21:50, 2F

11/25 21:53, , 3F
原po是寫C++比較多還是C#比較多呀...? XD
11/25 21:53, 3F

11/25 21:59, , 4F
樓上是指 null 嗎? XDD
11/25 21:59, 4F

11/25 22:04, , 5F
不,因為他的文章在這兩個板最近都很常看到 XD
11/25 22:04, 5F

11/25 22:06, , 6F
@_@
11/25 22:06, 6F

11/25 22:07, , 7F
只是好奇一下啦,沒什麼特別的意思
11/25 22:07, 7F

11/25 22:52, , 8F
C# = = 只是我都用C++去想C# 畢竟沒空真的去詳讀C#的教學書籍
11/25 22:52, 8F

11/25 22:53, , 9F
我覺得C++也會遇到的case這邊就來問@@ 畢竟這邊比較多人
11/25 22:53, 9F

11/25 22:53, , 10F
謝謝
11/25 22:53, 10F
文章代碼(AID): #1Cxb_N_c (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1Cxb_N_c (C_and_CPP)