#ifndef SAYER_H #define SAYER_H class Sayer { protected: string utterance; public: Sayer(); Sayer(string blah); void say(); }; class NoisySayer : public Sayer{ protected: int freq; public: NoisySayer(); NoisySayer(string blah, int times); void say(); }; class ObedientSayer : NoisySayer{ private: int currFreq; public: ObedientSayer(string yap, int times); void say(); friend void pet(ObedientSayer &); friend void squeeze(ObedientSayer &); }; class Quacker : private NoisySayer { public: Quacker(); void quack(); }; #endif