<分区>
根据 C++11 标准,您可以使用 default
关键字将特殊成员函数声明为默认值。
class Foo
{
public:
Foo() = default;
Foo(const Foo& source) = default;
Foo(Foo&& source) = default;
~Foo() = default;
Foo& operator=(const Foo& right) = default;
Foo& operator=(Foo&& right) = default;
};
我想知道如果您不需要自定义实现这些方法,那么将所有这些方法显式声明为默认或删除是否是一个好习惯。例如,我需要为我的类实现复制构造函数和复制赋值运算符。我是否应该用 default
或 delete
关键字标记所有其他特殊成员函数,以便在每次查看由编译器提供而哪些不是的类时都不会思考?