#include <iostream> #include <string> using namespace std; class Pet { public: Pet(string theName); void eat(); void sleep(); virtual void play(); protected: string name; }; class Cat : public Pet { public : Cat(string theName); void climb(); void play(); }; class Dog : public Pet { public: Dog(string theName); void bark(); void play(); }; Pet::Pet(string theName) { name = theName; } void Pet::eat() { cout << name << "[正在吃东西]" << endl; } void Pet::sleep() { cout << name << "[正在睡大觉]" << endl; } void Pet::play() { cout << name << "[正在玩]" << endl; } Cat::Cat(string theName) : Pet(theName) { } void Cat::climb() { cout << name << "[正在爬树]" << endl; } void Cat::play() { Pet::play(); cout << name << "[玩毛线球]" << endl; } Dog::Dog(string theName) : Pet(theName) { } void Dog::bark() { cout << name << "[旺 旺 旺]" << endl; } void Dog::play() { Pet::play(); cout << name << "[正在追赶那只猫]" << endl; } int main() { int *p = new int; *p = 100; cout << *p << endl; delete p; Pet *cat = new Cat("加菲"); Pet *dog = new Dog("欧迪"); cat->sleep(); cat->eat(); cat->play(); dog->sleep(); dog->eat(); dog->play(); delete dog; delete cat; return 0; }