我的代码不知道为什么,只调用了构造函数析构函数直接没有调用
#include<iostream>
#include<string>
using namespace std;
class animal{
public:
animal()
{
cout<<"父类构造函数"<<endl;
}
virtual void speak()=0;//父类纯虚构函数,为子类提供操作接口
~animal()
{
cout<<"父类析构函数"<<endl;
}
};
class dog:public animal{
public:
dog()
{
cout<<"子类构造函数"<<endl;
}
void speak()
{
cout<<"狗在说话"<<endl;
}
~dog()
{
cout<<"子类析构函数"<<endl;
}
};
void dospeak(animal*animal)
{
animal->speak();
}
void test()
{
animal*p=new dog;
dospeak(p);
}
int main()
{
test();
system("pause");
return 0;
}