For example, in the main function, I want to get user input. Depending on the input, I will create either a Rectangle
or Circle
, which are child classes of Object
. If there is no input (or unknown), then I will just create a shared object.
class Object { public: Object(); void Draw(); private: .... }; class Rectangle:public Object { public: Rectangle(); ....
The main function:
string objType; getline(cin, objType); if (!objType.compare("Rectangle")) Rectangle obj; else if (!objType.compare("Circle")) Circle obj; else Object obj; obj.Draw();
Of course, the code above will not work, because I cannot create an instance of the object inside the If statement. So I tried something like this.
Object obj; if (!objType.compare("Rectangle")) obj = Rectangle(); else if (!objType.compare("Circle")) obj = Circle(); obj.Draw();
This code will compile, but it will not do what I want. For some reason, the object was not initiated in the way the child class should be executed (for example, I set some member variables of the object, in particular the vector, otherwise in the child classes). However, when I set a breakpoint in the constructor of the Child class, it passed through it.
So, how do I put instance objects as my child classes in some if-statements ??
source share