2014-04-12 92 views
0
class Vector{ 
...... 
....... 
private: 
int dim; 
public: 
int getDim() { 
return this->dim; 


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

而我在this-> getSize();中有编译错误。这是事实,这个论点是正确的。我不知道问题在哪里。我不尝试修改权利。重载操作符。 const参数会产生一些问题

回答

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);