/*
*程序的版权和版本声明部分:
*Copyright(c)2014,烟台大学计算机学院学生
*All rights reserved.
*文件名称:
*作者:刘晓晓
*完成日期:2014年 05月26号
*版本号: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;
}
//先调用基类的构造函数,再调用派生类的构造函数。然后实现普通函数的功能,最后执行派生类的析构函数,再执行基类的析构函数