当C++中的纯虚析构函数被调用时,其行为有何变化
发布时间
阅读量:
阅读量
我昨天前往XX公司进行了面试,在面试过程中,面试官提出了一个问题:关于C++中当使用子类对象来初始化父类指针时,在析构过程中,虚拟函数与非虚拟函数之间存在什么区别呢?后来我意识到自己在那次回答中存在不足,并且通过在机器上实际操作加深了对这一概念的理解。之后我将这次经验记录下来,并确保以后遇到类似问题时不犯同样的错误。
首先让我们从最基本的情况开始探讨。教材中通常会讲解的。析构函数不采用虚析构的方式,在子类中正常情况下直接定义对象。
class student
{
public:
int *m_pInt;
student()
{
m_pInt = new int[10]; //1
memset(m_pInt, 0, 10*4);
}
~student()
{ //3
delete []m_pInt;
}
};
class GradeOneStue:public student
{
public:
int m_iNum;
GradeOneStue()
全部评论 (0)
还没有任何评论哟~
