我正在寫一個類,它的元素是點的網格 - 一個(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; }
,但似乎像一個圓形的定義。
'操作符[]'當然不應返回對網格的引用!在你的定義中它並不是這樣,但是當聲明的返回類型是'Grid&'時,會導致第一個錯誤。 – leftaroundabout 2012-07-20 08:02:52