c – 为纯虚拟析构函数添加定义的目的是什么?

c – 为纯虚拟析构函数添加定义的目的是什么?,第1张

概述灵感来自: C++ — why should we define the pure virtual destructor outside the class definition? 以下代码实际上做了什么? class Object{ public: virtual ~Object() = 0;};Object::~Object() { /*...*/ } 我认为纯虚函数 灵感来自: C++ — why should we define the pure virtual destructor outside the class definition?

以下代码实际上做了什么?

class Object{    public:    virtual ~Object() = 0;};Object::~Object() { /*...*/ }

我认为纯虚函数的要点是强制子类实现该特定函数.如果是这种情况,那么为什么还要在虚拟基类中实现相同的功能呢?

解决方法 此代码阻止您创建Object实例,同时允许您创建子类.

在销毁对象时,将调用父类的析构函数,因此它必须存在.无论析构函数是纯虚函数还是非虚函数,这都适用.只有在显式调用它时才需要定义纯虚拟成员函数Foo:theFunc().

总结

以上是内存溢出为你收集整理的c – 为纯虚拟析构函数添加定义的目的是什么?全部内容,希望文章能够帮你解决c – 为纯虚拟析构函数添加定义的目的是什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1219150.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存