#include<iostream>
using namespace std;
class mammal {
public:
mammal(){
cout<<"mammal constructor...\n";
}
virtual ~mammal(){
cout<<"mammal destructor...\n";
}
virtual void speak()const{
cout<<"mammal speak!\n";
}
};
class dog:public mammal{
public:
dog(){
cout<<"dog constructor...\n";
}
~dog(){
cout<<"dog destructor...\n";
}
void speak()const{
cout<<"woof!\n";
}
};
int main(){
mammal*pdog=new dog;
pdog->speak();
delete pdog;
return 0;
}