可以根据条件语句创建类的对象吗?

问题描述:

我正在创建一个银行程序,如果acc_type是当前的,那么obj应该创建currentclass(从银行类派生),否则对象应该创建savingclass(从银行类派生)。我可以像这样使用吗?我用它但它显示错误有点像'obj'没有在范围内声明。 enter image description here可以根据条件语句创建类的对象吗?

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

请将错误消息作为文本发布,而不是图像。 –

简单的解决办法是:

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)。 –