C ++类中带有引用返回的运算符重载

时间:2018-09-07 07:34:18

标签: c++ operator-overloading

这两个功能有什么区别?

double &operator[](size_t i) { return features_[i]; }
double operator[](size_t i) const { return features_[i]; }

1,第一个允许修改features_[i],但第二个不允许?

2,当我写Mytype[i] = 0double x = Mytype[i]时将选择哪个运算符?

1 个答案:

答案 0 :(得分:0)

1)是。请注意,第二个(const)返回一个副本(按值返回),可以修改,但不会修改Mytype中的原始副本。

2)它仅取决于Mytype的常数。但是,无论哪种情况,double x = Mytype[i]都会产生一个副本。