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