// File: ex5-8.cpp #include #include using namespace std; class Cat; class Dog { string name; public: void bark(const Cat&) const; Dog(const string& n) : name(n) { } friend class Cat; }; class Cat { string name; public: void meow(const Dog&) const; Cat(const string& n) : name(n) { } friend void Dog::bark(const Cat&) const; }; void Dog::bark(const Cat& c) const { for (size_t i = 0; i < c.name.size(); i++) cout << " woof "; cout << endl; } void Cat::meow(const Dog& d) const { for (size_t i = 0; i < d.name.size(); i++) cout << " meow "; cout << endl; } int main() { Dog bart("Bart"); Cat socks("Socks"); bart.bark(socks); socks.meow(bart); }