显式声明类的特殊功能default之间有什么区别。
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{};
这2个声明之间有什么区别?为什么将默认行为功能明确指定为默认行为?
因为在某些情况下,编译器可能不会添加构造函数,析构函数或运算符,即使您可能需要编译器生成的默认值。然后,通过使用显式default
指示符,编译器将始终执行该操作。
您可以在此class
参考资料中找到更多信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句