|
ex7-2.cpp - Example 7-2 Inheritance - number and my_number classes |
// File: ex7-2.cpp – Adding functionality to a class using inheritance
#include <iostream>
using namespace std;
class Number
{
protected:
int x;
public:
Number() {}
Number(int n) { x = n; }
Number(const Number& n) { x = n.x; }
void print(void) const { cout << x << endl; }
Number& operator=(const Number& z) { x = z.x; return *this; }
Number operator+(const Number& y) const { return x + y.x; }
};
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.print();
cout << "n2="; n2.print();
n3 = n1 + n2;
cout << "n3="; n3.print();
cout << endl;
MyNumber mn1(7), mn2(4);
MyNumber mn3;
cout << "mn1="; mn1.print();
cout << "mn2="; mn2.print();
mn3 = mn1 + mn2;
cout << "mn3="; mn3.print();
mn3 = mn1 - mn2;
cout << "mn3="; mn3.print();
MyNumber mn4(n1);
cout << "mn4="; mn4.print();
MyNumber mn5(mn1);
cout << "mn5="; mn5.print();
return 0;
}
CIS27: Programming in C++ Instructor: Joe Bentley