复制赋值运算符定义

时间:2017-08-30 13:13:41

标签: c++ assignment-operator

如果类具有const成员变量和引用成员变量,那么类的复制赋值运算符的定义是什么 例如:

class ABC
{
  int const i;
  int & j;
  int k;
  public :
  ABC() :k(40), i(10),j(k)
  {}
};

1 个答案:

答案 0 :(得分:1)

Const对象和引用是不可分配的。因此,具有此类成员的类将不具有隐式赋值运算符。可以定义自定义赋值运算符,但不能修改这些成员。

如果您希望您的类具有复制赋值,该引用使引用引用与参数对象引用的相同对象,则您根本无法使用引用。

如果您希望您的类具有使const成员具有与参数对象相同的值的复制赋值,那么您根本无法使用const成员。

  

对于const我们可以在const_cast

的帮助下完成

修改const对象(在const_cast的帮助下)有未定义的行为。