// File: ex7-2.cpp – Adding functionality to a class using inheritance #include using namespace std; class Number { protected: int x; public: Number() {} Number(int n) : x(n) { } Number(const Number& n) : x(n.x) { } int get_x() const { return x; } Number& operator=(const Number& z) { x = z.x; return *this; } Number operator+(const Number& y) const { return x + y.x; } }; ostream& operator<<(ostream& out, const Number& obj) { out << obj.get_x(); return out; } class MyNumber : public Number { public: MyNumber() {} MyNumber(int n) : Number(n) { } MyNumber(const Number& n) : Number(n) {} MyNumber(const MyNumber& m) : Number(m) {} MyNumber operator-(const MyNumber& y) const { return x - y.x; } }; int main(void) { Number n1(4), n2(5); Number n3; cout << "n1=" << n1 << endl; cout << "n2=" << n2 << endl; n3 = n1 + n2; cout << "n3=" << n3 << endl; cout << endl; MyNumber mn1(7), mn2(4); MyNumber mn3; cout << "mn1=" << mn1 << endl; cout << "mn2=" << mn2 << endl; mn3 = mn1 + mn2; cout << "mn3=" << mn3 << endl; mn3 = mn1 - mn2; cout << "mn3=" << mn3 << endl; MyNumber mn4(n1); cout << "mn4=" << mn4 << endl; MyNumber mn5(mn1); cout << "mn5=" << mn5 << endl; }