相关疑难解决方法(0)

如何有条件地实例化不同的子类?

例如,在main函数中,我想获取用户的输入.根据输入,我将创建a Rectangle或a Circle,它们是子类Object.如果没有输入(或未知),那么我将只创建一个通用对象.

class Object
{ 
       public:
           Object();
           void Draw();
       private:
           ....  
};
class Rectangle:public Object
{ 
       public:
           Rectangle();
           .... //it might have some additional functions
       private:
           ....  
};

class Circle:public Object
{ 
       public:
           Circle();
           .... //it might have some additional functions
       private:
           ....  
};
Run Code Online (Sandbox Code Playgroud)

主功能:

string objType;
getline(cin, objType);

if (!objType.compare("Rectangle"))
     Rectangle obj;
else if (!objType.compare("Circle"))
     Circle obj;
else 
     Object obj;

obj.Draw();
Run Code Online (Sandbox Code Playgroud)

当然,上面的代码不起作用,因为我不能在If语句中实例化一个对象.所以我试过这样的事情.

Object obj;
if (!objType.compare("Rectangle"))
    obj = Rectangle();
else if (!objType.compare("Circle"))
    obj = …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance class

7
推荐指数
1
解决办法
3075
查看次数

标签 统计

c++ ×1

class ×1

inheritance ×1