创建类时,我知道如果您不指定它们,它们会自动生成 3 个构造函数/析构函数。operator=
也是自动创建的。
operator==
或任何其他比较运算符是自动生成的吗?是否创建了任何其他成员或成员函数?this
指针呢?
根据我能找到的最新规范,第 12.1 节指出:
12 特殊成员函数 [special] 1 默认构造函数(12.1)、复制构造函数和复制赋值运算符(12.8)、移动构造函数和移动赋值运算符(12.8)和析构函数(12.4)是特殊成员函数。[注意:当程序没有显式声明它们时,实现会为某些类类型隐式声明这些成员函数。如果它们被 odr-used (3.2),实现将隐式定义它们。... ]