#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;
}