重複の可能性:
同様の const メンバー関数と非 const メンバー関数の間のコードの重複を削除するにはどうすればよいですか?
次の例では:
template<typename Type, unsigned int Size>
class MyClass
{
public: inline Type& operator[](const unsigned int i)
{return _data[i];}
public: inline const Type& operator[](const unsigned int i) const
{return _data[i];}
protected: Type _data[Size];
};
const と non-constoperator[]
は独立して実装されます。
デザインに関しては、次のものが必要です。
- 1) ここのような 2 つの独立した実装
- 2) もう一方を呼び出す 2 つの関数の 1 つ
解決策 2) の方が優れている場合、指定された例のコードは何でしょうか?