重複の可能性:
同様の const メンバー関数と非 const メンバー関数の間のコードの重複を削除するにはどうすればよいですか?
私の仕事は、C++ ベクトル アナログを実装することです。2 つのケースで operator[] をコーディングしました。
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];
}
ご覧のとおり、コードは完全に同等です。この例 (コードラインは 1 つだけ) では問題ありませんが、const と non-const の両方のケースに演算子またはメソッドを実装し、それぞれ const または参照値を返す必要がある場合はどうすればよいですか? コードを変更するたびに、すべてのコードをコピーして貼り付けるだけですか?