/* * wallcabinet.hpp * * Created on: Nov 18, 2010 * Author: mike * for use in Yale course CPSC 427a, Fall 2010 */ #pragma once #include using namespace std; // -------------------------------------------------------- // Abstract class class WallCabinet { public: virtual ~WallCabinet() {} virtual ostream& print(ostream& out) const =0; }; // -------------------------------------------------------- // Concrete classes class ModernWallCabinet : public WallCabinet { public: ostream& print(ostream& out) const { return out << "I'm a modern wall cabinet" << endl; } }; class AntiqueWallCabinet : public WallCabinet { public: ostream& print(ostream& out) const { return out << "I'm an antique wall cabinet" << endl; } };