重载运算符。 Const参数会产生一些问题

时间:2014-04-12 09:47:34

标签: c++

class Vector{
......
.......
private:
int dim;
public:
int getDim() {
return this->dim;


}
const Vector operator+(const  Vector& right){
this->getSize();
}
 };

我在这个> getSize();中遇到了编译错误。事实是,论证权利是常态。我不知道问题出在哪里。我没有尝试修改正确。

1 个答案:

答案 0 :(得分:3)

据推测,你有一个非const方法Vector::getSize()。您需要将其设为const,以便可以在const个对象上或通过const引用或指向const的指针调用它。例如:

int getSize() const;
              ^^^^^

另请注意,返回const值没有多大意义(如果有的话,会禁止移动语义)。加法成员运算符的规范形式是

// const method: A = B + C should not modify B
Vector operator+(const Vector& right) const;
                                      ^^^^^

和非会员

Vector operator+(const Vector& left, const Vector& right);