这两个功能有什么区别?
double &operator[](size_t i) { return features_[i]; }
double operator[](size_t i) const { return features_[i]; }
1,第一个允许修改features_[i]
,但第二个不允许?
2,当我写Mytype[i] = 0
和double x = Mytype[i]
时将选择哪个运算符?
答案 0 :(得分:0)
1)是。请注意,第二个(const)返回一个副本(按值返回),可以修改,但不会修改Mytype
中的原始副本。
2)它仅取决于Mytype
的常数。但是,无论哪种情况,double x = Mytype[i]
都会产生一个副本。