看板 C_and_CPP 關於我們 聯絡資訊
請教各位一個情況 例如 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)
loveme00835:http://codepad.org/oSdjiR90 很少在用指標了說... 11/25 21:48
loveme00835:糟糕@_@ 混用太嚴重了... 11/25 21:50
james732:原po是寫C++比較多還是C#比較多呀...? XD 11/25 21:53
loveme00835:樓上是指 null 嗎? XDD 11/25 21:59
james732:不,因為他的文章在這兩個板最近都很常看到 XD 11/25 22:04
loveme00835:@_@ 11/25 22:06
james732:只是好奇一下啦,沒什麼特別的意思 11/25 22:07
QQ29:C# = = 只是我都用C++去想C# 畢竟沒空真的去詳讀C#的教學書籍 11/25 22:52
QQ29:我覺得C++也會遇到的case這邊就來問@@ 畢竟這邊比較多人 11/25 22:53
QQ29:謝謝 11/25 22:53