Consider the following class definitions:
class baseClass
{
public:
void print() const;
int getX() const;
baseClass(int a = 0);
protected:
int x;
};
class derivedClass: public baseClass
{
public:
void print() const;
int getResult() const;
derivedClass(int a = 0, int b = 0);
private:
int y;
};
Suppose the definitions of the member functions of these classes are as
follows:
void baseClass::print() const
{
cout << "In base: x = " << x << endl;
}
baseClass::baseClass(int a)
{
x = a;
}
int baseClass::getX() const
{
return x;
}
void derivedClass::print() const
{
cout << "In derived: x = " << x << ", y = " << y
<< "; x + y = " << x + y << endl;
}
int derivedClass::getResult() const
{
return x + y;
}
derivedClass::derivedClass(int a, int b)
: baseClass(a)
{
y = b;
}
What is the output of the following function main?
int main()
{
baseClass baseObject(7);
derivedClass derivedObject(3, 8);
baseObject.print();
derivedObject.print();
cout << "****" << baseObject.getX() << endl;
cout << "" << derivedObject.getResult() << endl;
return 0;
}