c – 为纯虚拟析构函数添加定义的目的是什么?
发布时间:2020-12-16 10:18:32 所属栏目:百科 来源:网络整理
导读:灵感来自: 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(). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |