重複の可能性:
同様の 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) の方が優れている場合、指定された例のコードは何でしょうか?