配列から整数を返すために、C ++の単純なクラスの[](角括弧)演算子をオーバーロードしました。次に、このオーバーロードされた演算子をメンバー関数で再利用します。*this[ i ]
演算子を直接参照することはできますが、使用が明らかに機能しないため、これを実装するのに問題があります。
int & A::operator [] (size_t i)
{
return ints[ i ];
}
...
int A::getVal ( size_t i) const
{
// Does not work
return *this[ i ];
// Does work
// return operator []( i );
}
ポインターを逆参照this
して演算子[]を使用するとコンパイルエラーが発生するのに、演算子を直接呼び出すと機能するのはなぜですか?
コンパイル時に次のエラーが発生します。
'constArray'から'char'に変換できません
ご入力ありがとうございます。