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