可能重複:
How do I remove code duplication between similar const and non-const member functions?如何避免運算符或方法對const和非const對象的代碼重複?
我的任務是實現C++的矢量模擬。我已經爲2個運算符[]編碼。
T myvector::operator[](size_t index) const {//case 1, for indexing const vector
return this->a[index];
}
T & myvector::operator[](size_t index) {//case 2, for indexing non-const vector and assigning values to its elements
return this->a[index];
}
正如你所看到的,代碼是完全平等的。這個例子沒有問題(只有一個代碼行),但是如果我需要爲const和非const的情況分別實現一些運算符或方法,並分別返回const或引用值,我應該怎麼做?每次我對其進行更改時,只需複製粘貼所有代碼?
爲什麼你要在const版本中返回值。你可以返回一個const引用。 – 2011-04-20 19:05:30