C++で[]演算子をどのようにオーバーロードできますか。私は基本的に1次元配列のインデックスにアクセスしてそれを返す必要があります。私はこれをやってみましたが、望みの結果が得られないようです。[]演算子をどのようにオーバーロードできますか?
Square Square::operator [](const Square& temp)
{
Square obj; //creates a Square class object.
for(int i=0;i<dimension;i++)
{
*obj.board = temp.board[i];
}
return obj;
}
新しいオブジェクトを返すコピー演算子として[]を使用しているようです。あなたが望むのは、インデックスを取得するものです。私は、this.board [i]を返します。このボードが存在すると仮定します。 – kabanus
すべての警告とデバッグ情報( 'g ++ -Wall -g')でコンパイルし、**デバッガ**(' gdb')を使用します。あなたはバグが他の場所にあるかもしれません( 'temp'を持っていて、それは' Square'が奇妙に見えます) –
'Square'にアクセスしたい配列が含まれている場合、基本的には通常の配列の場合は 'operator []'です。つまり、インデックスを取得し、実際の配列の要素型への参照を返し、配列の 'operator []'を内部的に使用する必要があります。 –