Question: Expanding on Q2, create a function that takes a Shape object by value and try to upcast a derived object in as an argument. See

 Expanding on Q2, create a function that takes a Shape object by value and try to upcast a derived object in as an argument. See what happens. Fix the function by taking a reference to the Shape object. HERE IS Q2 #include  using namespace std; class Shape { public: virtual void draw() = 0; // pure virtual function }; class Circle : public Shape { void draw() { cout << "Drawing Circle "; } }; class Square : public Shape { void draw() { cout << "Drawing Square "; } }; class Triangle : public Shape { void draw() { cout << "Drawing Triangle "; } }; int main() { // creating pointers for base class Shape* s[5]; // creating objects for child class Circle* c = new Circle(); Square* sq = new Square(); Triangle* t = new Triangle(); // peforming upcasting s[1] = c; s[2] = sq; s[3] = t; // calling draw s[1]->draw(); s[2]->draw(); s[3]->draw(); return 0; }

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!