Question 6. Inheritance [9]
Carefully study the program below then show the precise output it would produce.
#include <iostream> using namespace std; class grandparent { protected: int gpVal; public: grandparent() { gpVal = 1; cout << "setting gpVal " << gpVal << endl; } virtual void print() = 0; }; class parent: public grandparent { protected: int pVal; public: parent(int i = 10) { pVal = i; cout << "setting pVal " << pVal << endl; } virtual void print() { cout << "parent " << pVal << "," << gpVal << "\n"; } }; class child: public parent { protected: int cVal; public: child(int i = 100) { cVal = i; cout << "setting cVal " << cVal << endl; } virtual void print() { cout << "child " << cVal << "," << pVal << "," << gpVal << "\n"; } }; int main() { grandparent *gp; parent *p1; parent p2; child *c1; p1 = new child(100); c1 = new child(200); gp = new parent(10); gp->print(); p1->print(); c1->print(); }