什么和& =在C& operator =(const C&)& =默认;做?

时间:2014-06-30 06:49:14

标签: c++ c++11 operator-overloading

关于SO的一些问题使用特定语法来声明默认赋值运算符。

Rule-of-Three becomes Rule-of-Five with C++11?

class C {
  C(const C&) = default;
  C(C&&) = default;
  C& operator=(const C&) & = default;
  C& operator=(C&&) & = default;
  virtual ~C() { }
};

我对& =用于赋值运算符。在快速测试之后,默认赋值运算符声明似乎编译并给出预期的行为,无论是否有额外的&符号。

我没看到& = cppreference上的语法。

1 个答案:

答案 0 :(得分:2)

&ref qualifier

在这种特殊情况下,它使得你想要分配的C实例必须是非const左值。

相关问题