加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 规则“用户定义但不做任何析构函数也是一个非平凡的析构函

发布时间:2020-12-16 07:24:18 所属栏目:百科 来源:网络整理
导读:class Base{public: ~Base() {}private: int val;};Base base; // a global variable 看,析构函数什么都不做,就像c complier提供的默认析构函数一样.但是析构函数仍然是一个非平凡的析构函数,可以追溯到What is a non-trivial destructor in C++?之后 我知道
class Base
{
public:
    ~Base() {}
private:
    int val;
};

Base base; // a global variable

看,析构函数什么都不做,就像c complier提供的默认析构函数一样.但是析构函数仍然是一个非平凡的析构函数,可以追溯到What is a non-trivial destructor in C++?之后

我知道,标准中的每个规则都必须严格.

但是,通过我粘贴的上层代码,用户定义的析构函数确实没有做任何事情!为什么它也是非平凡的?我不明白….

有什么魔法我不知道吗?

解决方法

规则绝对禁止定义赋予提供空值的含义:它指定不得在提供存储的数组中忘记其实例.析构函数的作用(如果有的话)可以被视为可能在将来版本中更改的实现细节.它还根据是否在类定义中定义了“空”析构函数来避免意义的改变;如果不是,它甚至可以通过二进制兼容来改变它来做某事.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读