/*
*程序的版权和版本声明部分
* Copyright (c)2013, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称:Mammal .cpp
* 作 者: 田凤
*完成日期:2013年5月31日
* 版本号: v1.0
* 输入描述: 略
* 问题描述:略
* 输出:输出信息
*代码:
#include <iostream>
using namespace std;
class Mammal
{
public:
Mammal( )
{
cout<<"Mammal constructor called."<<endl;
}
virtual ~Mammal()
{
cout<<"Mammal destructor called."<<endl;
}
virtual void Speak() const
{
cout<<"Mammal speak."<<endl;
}
};
class Dog : public Mammal
{
public:
Dog()
{
cout<<"Dog constructor called."<<endl;
}
~Dog()
{
cout<<"Dog destructor called."<<endl;
}
void Speak() const
{
cout<<"Woof!"<<endl;
}
};
int main()
{
Mammal *p=new Dog;
p->Speak();
delete p;
return 0;
}
*运行结果:
*心得体会:基类的析构函数声明为虚析构函数时,先调用派生类的析构函数,再调用基类的析构函数!