// classes.h -- CSE143 assignment 5 sample solution, 2/99. HP // Class definitions for Critters program. #include #include // ----- Critter: common abstract interface to all Critter classes. ----- class Critter { public: // Construct Critter with description s. Critter(const char *s); // Write Critter description to cout void describe( ) const; // Write noise made by this Critter to cout virtual void speak( ) const = 0; private: char description[80]; // description of this Critter }; // ----- Derived Critter class Poodle ----- class Poodle: public Critter { public: // constructor Poodle( ); // write noise made by poodles to cout void speak( ) const; }; // ----- Derived Critter class Bovine ----- class Bovine: public Critter { public: // constructor Bovine(const char *); // generic bovines don't have a noise, // so Bovine::speak is not provided, // which means Bovine is an abstract class }; // ----- Derived Bovine class Buffalo ----- class Buffalo: public Bovine { public: // constructor Buffalo( ); // write noise made by buffalos to cout void speak( ) const; }; // ----- Derived Bovine class Cow ----- class Cow: public Bovine { public: // constructor Cow( ); // write noise made by cows to cout void speak( ) const; };