定义[]=运算符
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=
)
相关文章:
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 有没有一种方法可以通过"typedef"为重新定义的基本类型定义特征和强制转换运算符
- 如何正确实现和访问运算符的各种自定义枚举器
- 自定义先决条件对移动分配运算符有效吗
- 在运算符重载定义中使用成员函数(const错误)
- g++用户定义的动态链接库上的全局new和delete运算符
- 一元"运算符"未在C++中定义
- STL按客户"<"运算符对向量进行排序。为什么要将"<"运算符定义为 const?
- 如何将运算符定义从头文件添加到现有结构?
- 在使用具有相等运算符定义的抽象类时,如何定义父类以减少代码重复?
- 当我们没有将运算符+定义为朋友时?C++
- 没有返回值的c++类成员运算符定义
- 用指向对象的指针和c++中的new运算符定义对象
- <T> 仅为具有运算符/定义的此类 T 创建模板
- 基类中的运算符定义
- C++:不同名称空间中的多个运算符定义
- 运算符定义不能正常工作
- 类运算符'='定义
- 为什么VS不为逻辑运算符定义可选的令牌?
- std::equal_range 不适用于具有运算符<定义的结构