2016-12-06 12 views
0

ゼロベースの位置(列x、行y)の2D配列の要素への定数参照を返す演算子()をどのようにオーバーライドできますか? 配列データをT *バッファに格納しました。定数参照を返す演算子

const T & operator() (int x, int y) const {} 
+0

'return buffer [x * row_len + y];'、多分? – StoryTeller

答えて

0

return T[x + y * columns]columnsは「マトリックス」の列数である通常の方法、次のとおりです。 は、私は私のメソッドの宣言は次のようになりますだと思います。 return T[x * rows + y]が代わりで、rowsは「マトリックス」の行数です。列の数を増やすか、列の数を増やして、行列を単純にサイズ変更可能にするかどうかに応じて、いずれかのスキームを選択します。

この関数は、最初に渡された行パラメータで作成されたものです。あなたの方法は特有ですか?

あなたはにできるようにしたい場合は、参照を通じて行列の要素を設定し、その後、過負荷あまりに

T & operator() (int x, int y) {/*same function body*/}

を提供しています。最後に、size_tをパラメータとして使用するか、unsignedタイプtypedefをクラスに追加することを検討してください。

+0

ご協力ありがとうございます –

関連する問題