2017-04-07 65 views
0

我正在創建一個銀行程序,如果acc_type是當前的,那麼obj應該創建currentclass(從銀行類派生),否則對象應該創建savingclass(從銀行類派生)。我可以像這樣使用嗎?我用它但它顯示錯誤有點像'obj'沒有在範圍內聲明。 enter image description here可以根據條件語句創建類的對象嗎?

if(condition) 
{ 
    derivedclass1 obj; //first object 
} 
else 
{ 
    derivedclass2 obj; //second object 
}  
+0

請將錯誤消息作爲文本發佈,而不是圖像。 –

回答

1

簡單的解決辦法是:

baseclass *obj; 
if(condition) 
{ 
    obj = new derivedclass1; //first object 
} 
else 
{ 
    obj = new derivedclass2; //second object 
} 

有這樣做(我個人使用std::unique_ptr)的其他方法,但是這是最容易理解的。

+0

它不會創建班級銀行的對象嗎? –

+0

不,new'語句顯式創建子類'currentclass'或'savingclass'。這裏是[更詳細的指向基類的指針](http://stackoverflow.com/q/2700786/1270789)。 –