C++抽象类与纯虚函数实战举例

C++抽象类与纯虚函数实战举例

虚函数与纯虚函数请参考:http://blog.csdn.net/hackbuteer1/article/details/7558868

#include <iostream>

using namespace std;

class Animal
{
public:
    virtual void eat()=0;
    virtual void sleep()=0;
};
class Cat:public Animal
{
public:
    void eat()
    {
        cout<<"The cat is eating now."<<endl;
    }
    void sleep()
    {
        cout<<"The cat is sleeping now."<<endl;
    }
};
class Bear:public Animal
{
public:
    void eat()
    {
        cout<<"The bear is eating now."<<endl;
    }
    void sleep()
    {
        cout<<"The bear is sleeping now."<<endl;
    }
};

class Panda:public Cat,public Bear
{
public:
    void eat()
    {
        cout<<"The panda is eating now."<<endl;
    }
    void sleep()
    {
        cout<<"The panda is sleeping now."<<endl;
    }
};

void show(Cat *p)
{
    cout<<"========================"<<endl;
    p->eat();
    p->sleep();
    cout<<"========================"<<endl;
}
int main(int argc, char *argv[])
{
    Cat *p;
    Cat c;
    Panda d;

    p=&c;
    show(p);

    p=&d;
    show(p);

    return 0;
}

C++抽象类与纯虚函数实战举例