#include #include using namespace std; /////////////////////////////////////////// class Pet { public: Pet(string name); // constructor void goes(); void likes(); string I(); private: string my_name; }; Pet::Pet(string name) :my_name(name) {} void Pet::goes() { cout << I() << " goes ???\n"; } void Pet::likes() { cout << I() << " likes ???\n";} string Pet::I() { return my_name;} /////////////////////////////////////////// class Dog: public Pet { public: Dog(string name); // constructor void goes(); // overloading goes void likes(); // overloading likes private: string my_name; }; Dog::Dog(string name) :Pet(name) {} void Dog::goes() { cout << I() << " goes Woof!! Woof!!\n"; } void Dog::likes() { cout << I() << " likes bone.\n";} /////////////////////////////////////////// class Cat: public Pet { public: Cat(string name); // constructor void goes(); // overloading goes void likes(); // overloading likes private: string my_name; }; Cat::Cat(string name) :Pet(name) {} void Cat::goes() { cout << I() << " goes Meow!! Meow!!\n";} void Cat::likes() { cout << I() << " likes fish.\n";} int main() { Pet lulu("Lulu"); Dog lucky("Lucky"); Cat mimi("Mimi"); lulu.goes(); lulu.likes(); cout << endl; lucky.goes(); lucky.likes(); cout << endl; mimi.goes(); mimi.likes(); cout << "\n\n"; return 0; }