[英]Breaking creation of object in constructor
我班上的構造函數檢查某些條件。 在某些情況下,它應該打破對象的創建。 我應該在那里放置析構函數還是只返回聲明?
它是這樣的:
代碼中的某個地方:
new Obj( string );
和我的構造函數:
Obj::Obj( string ) {
if( string == "something" ) {
// should I put this here or only return?
Obj::~Obj();
return;
}
// ...
}
我知道我可以在創建對象之前檢查條件,但我只是想知道它是否正確(如果沒有內存泄漏),因為它編譯得很好而不會在運行時崩潰。
你也不應該拋出異常。
不會創建任何對象,這是處理這種情況的慣用方法。
您需要在調用上下文(或更高版本)中處理異常。
Obj::Obj( string ) {
if( string == "something" ) {
// should I put this here or only return?
throw ObjectCouldNotBeCreatedException();
}
}
return
語句仍將創建該對象。 為了中斷構造,你應該拋出異常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.