主题:问个问题
class Base
{
public:
Base(){cout<<"Base Begin"<<endl;};
virtual ~Base(){cout<<"Base End"<<endl;};
virtual void Test()=0;
};
class A:public Base
{
public:
void Test()
{
cout<<"Test"<<endl;
return;
}
A()
{
cout<<"A Begin"<<endl;
return;
}
virtual ~A()
{
cout<<"A End"<<endl;
return;
}
};
/////////////
int main(int argc,char *argv[])
{
Base *pBase=new A;
pBase->Test();
delete pBase;
return 0;
}
有个问题,象上面这样写代码,用一个基类指针指向派生类对象,然后DELETE基类指针,同样能调用派生类的析构函数,这样写对吗?如果对的话是不是可以把各种类都继承一个基类,再用这个基类指针来指向派生类对象,想删除任何一种对象时都可以通过删除基类类型的对象指针这样来删除.用的是MINGW32编译器,请各位帮助解答一下.
{
public:
Base(){cout<<"Base Begin"<<endl;};
virtual ~Base(){cout<<"Base End"<<endl;};
virtual void Test()=0;
};
class A:public Base
{
public:
void Test()
{
cout<<"Test"<<endl;
return;
}
A()
{
cout<<"A Begin"<<endl;
return;
}
virtual ~A()
{
cout<<"A End"<<endl;
return;
}
};
/////////////
int main(int argc,char *argv[])
{
Base *pBase=new A;
pBase->Test();
delete pBase;
return 0;
}
有个问题,象上面这样写代码,用一个基类指针指向派生类对象,然后DELETE基类指针,同样能调用派生类的析构函数,这样写对吗?如果对的话是不是可以把各种类都继承一个基类,再用这个基类指针来指向派生类对象,想删除任何一种对象时都可以通过删除基类类型的对象指针这样来删除.用的是MINGW32编译器,请各位帮助解答一下.

您所在位置:

