可以根据条件语句创建类的对象吗?
问题描述:
我正在创建一个银行程序,如果acc_type是当前的,那么obj应该创建currentclass(从银行类派生),否则对象应该创建savingclass(从银行类派生)。我可以像这样使用吗?我用它但它显示错误有点像'obj'没有在范围内声明。 enter image description here
可以根据条件语句创建类的对象吗?
if(condition)
{
derivedclass1 obj; //first object
}
else
{
derivedclass2 obj; //second object
}
答
简单的解决办法是:
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)。 –
请将错误消息作为文本发布,而不是图像。 –