???????????????????
????????????????£????????????????????????????????????á?????????У????????????????????????????????????????á?
??????????????????£??????????????????????????????????????????????????????????????????????????????????á????磺
????void print(const Bear&);
????void print(const Endangered&);
???????Panda???????print???????????????????
????1??????????????????????
??????????????????????????????????????ж??壨???У????????????????????????????????????????????????????????Щ???????????????????????????????????????????????????????????磺
class ZooAnimal
{
public:
virtual void print(){}
virtual ~ZooAnimal(){}
};
class Bear : public ZooAnimal
{
public:
virtual void print()
{
cout << "I am Bear" << endl;
}
virtual void toes(){}
};
class Endangered
{
public:
virtual void print(){}
virtual void highlight()
{
cout << "I am Endangered.highlight" << endl;
}
virtual ~Endangered(){}
};
class Panda : public Bear?? public Endangered
{
public:
virtual void print()
{
cout << "I am Panda" << endl;
}
virtual void highlight()
{
cout << "I am Panda.highlight" << endl;
}
virtual void toes(){}
virtual void cuddle(){}
virtual ~Panda()
{
cout << "Goodby Panda" << endl;
}
};
???????????μ??÷??????
int main()
{
Bear *pb = new Panda();
pb->print();            //ok: Panda::print
//    pb->cuddle();            //error: not part of Bear interface
//    pb->highlight();        //error: not part of Bear interface
delete pb;                //Panda::~Panda
Endangered *pe = new Panda();
pe->print();            //ok: Panda::print
//    pe->toes();                //error: not part of Endangered interface
//    pe->cuddle();            //error: not part of Endangered interface
pe->highlight();        //ok: Panda::highlight
delete pe;                //Panda::~Panda
return 0;
}