我有一個C++類(在一個dll項目中),其成員變量是boost :: shared_ptrs到其他類的對象。將它們分配給類構造函數還是有一個單獨的init()函數可以實現這一點,這會更好嗎?在構造函數中分配共享ptrs(boost),單元測試
我假設內部boost :: shared_ptr指針T的默認值爲NULL。所以如果我在構造函數裏什麼都不做,boost :: shared_ptr的get()在調用Init()函數之前返回NULL。
另外,如果在賦值語句中有新的內存分配問題,應該如何捕獲異常(在Init中)還是很好地告訴調用者這個Init()來捕獲異常? boost :: shared_ptr a(new T);
是否有標準方法來模擬單元測試中的內存分配異常?並查看所有對象已正確取消分配
感謝您的回答羅賓,我應該在單元測試時使用引用計數。我也喜歡創建存根 – Kamal 2010-02-27 15:05:19
@Kamal的想法,如果任何其他初始化成員拋出,編譯器將調用任何初始化成員的析構函數。 – 2010-02-27 15:23:35