2014-04-12 98 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);