4

要素が Points であるクラス Grid を作成しています。これは、各正方形に (double) ポイントが含まれる (int) グリッドです。私はすでにこれを定義しています(高さの値は別の場所に保存されています):

Point &operator[](Point p) { return floor(get_x(p)) + height * floor(get_y(p)); }

代入演算子を定義したいと思います。これについてはどうすればよいでしょうか?[]演算子に基づいて自動的に定義されますか?

これまでのところ、

Point &operator[]=(Point p, Point q) { data[floor(get_y(p)) * height + floor(get_x(p))] = q; }

しかし、それは循環的な定義のようです。

4

1 に答える 1

7

それはどのように機能するかではなく、[]演算子はそのインデックスの要素の参照を返す必要があり、その要素(型) はサポートする必要がありますoperator=(つまりPoint::operator=)

于 2012-07-20T07:57:49.010 に答える