可能重複:
What is the meaning of a const at end of a member function?運算符+ =重載,爲什麼是const?
親愛的朋友們,
我試圖使用操作符重載+ =和我得到的 「丟棄預選賽」 的一些錯誤,只能通過在方法的末尾添加「const」,我能夠擺脫錯誤。有人可以解釋爲什麼這是必要的嗎?下面,代碼。
class Vector{
public:
Vector();
Vector(int);
//int getLength();
int getLength() const;
const Vector & operator += (const Vector &);
~Vector();
private:
int m_nLength;
int * m_pData;
};
/*int Vector::getLength(){
return (this->m_nLength);
}*/
int Vector::getLength() const{
return (this->m_nLength);
}
const Vector & Vector::operator += (const Vector & refVector){
int newLength = this->getLength() + refVector.getLenth();
...
...
return (*this);
}
請注意,如果不需要更改狀態,則使成員函數爲'const'總是一個好主意。 – 2010-11-12 13:11:17
投票將其作爲副本關閉。基本上,它在[成員函數結束時的const是什麼意思?](http://stackoverflow.com/questions/4059932/what-is-the-meaning-of-a-const-at - 成員函數的終結)(我現在標記爲[C++ - FAQ](http://stackoverflow.com/questions/tagged/c%2b%2b-faq),所以它會更容易找到)。 – sbi 2010-11-12 13:21:08
感謝您的建議! – Javier 2010-11-12 13:28:20