您的位置:首页 > 其它

定义一个哺乳动物Mammal类,再由此派生出狗Dog类,二者都定义 Speak()成员函数,基类中定义为虚函数,定义一个Dog类的对象,调用Speak函数,观察运行结果

2017-07-28 16:26 3227 查看
class Mammal

{

public:
Mammal(){cout<<"Mammal"<<endl;}
virtual void speak(){}
virtual ~Mammal()
{
cout<<"~Mammal::speak()"<<endl;
}

};

class Dog:public Mammal

{

public:
Dog(){cout<<"Dog"<<endl;}
virtual void speak()
{
cout<<"Dog::speak"<<endl;
}
~Dog()
{
cout<<"~Dog::speak()"<<endl;
}

};

void main()

{
Mammal *p;
p=new Dog;
p->speak();
//(*p).speak();
delete p;
p=NULL;
}

运行结果:



如若基类的析构函数不写关键字virtual,则只会调用基类的析构函数,不会调用派生类的析构函数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐