[英]Defining the []= operator
我正在編寫一個Grid類,其元素是Points - 一個(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; }
但這似乎是一個循環的定義。
這不是它的工作方式, []
運算符應該返回該索引處元素的引用,並且該元素 (類型)應該支持operator=
(即Point::operator=
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.