#ifndef _Number_h_ #define _Number_h_ /* Abstract base class 'Number' (no objects can be created) */ class Number { public: Number(); // default constructor Number(const Number &other); // copy constructor virtual ~Number(); // destructor virtual void read() = 0; // read value from 'cin' (abstract method) virtual void write() const = 0; // write value to 'cout' (abstract method; object is not changed) static int noOfNumbers(); // return number of instances (static member function) private: static int count; // number of instances (static var: only one instance for the whole class) }; #endif