【发布时间】:2017-06-14 11:50:54
【问题描述】:
显式声明类特殊函数默认有什么区别。
class Myclass
{
public:
Myclass() = default;
virtual ~Myclass() = default;
Myclass(MyClass&&) = default;
Myclass& operator=(MyClass&&) = default;
Myclass(const MyClass&) = default;
Myclass& operator=(const MyClass&) = default;
};
MyClass{};
这两个声明有什么区别? 为什么要明确指定默认行为函数为默认值??
【问题讨论】:
-
class MyClass{};版本没有虚拟析构函数。 -
What is the difference between this 2 declarations?哪两个声明?您似乎只包含了每个特殊成员函数的 1 个声明。