开发者社区 问答 正文

非virtual析构函数版本和virtual析构函数版本在继承体系中的析构函数调用有什么区别?

在C++中,非virtual析构函数版本和virtual析构函数版本在继承体系中的析构函数调用有什么区别?

展开
收起
花开富贵111 2024-06-19 14:19:46 46 分享 版权
1 条回答
写回答
取消 提交回答
  • 在非virtual析构函数版本中,决定继承体系中析构函数链调用的因素是指针的声明类型。析构函数的调用从声明指针类型的类开始,依次调用其父类析构函数。而在virtual析构函数版本中,决定继承体系中析构函数链调用的因素是指针的实际类型。析构函数的调用从指针指向的实际类型的类开始,依次调用其父类析构函数。

    2024-06-19 15:06:30
    赞同 1 展开评论
问答地址: