过载支架操作
overloaded bracket operation
本文关键字:操作 更新时间:2023-10-16
是否可以为多个运算符重载Bracket运算方法?(cpp),我认为Brack运算是一个单独的运算符,但我在cpp试卷的答案中看到了“Bracket operation method can be overloaded both for single operator and multiple operators”
。你能帮我吗?
虽然"subscript"operator[]
可以有多个重载,但它们都必须只带一个参数(并且该参数不能有默认值):
struct Foo {
R1 operator[](T) { /* ... */ }
R2 operator[](S const &) const { /* ... */ }
void operator[](U *) { /* ... */ }
};
原因很简单:表达式a[n]
是有效的,但a[m,n]
不是有效的二进制表达式(它是完全不同的),a[]
在该上下文中也不是有效的。
使用C++11的初始值设定项列表,您可以使类似a[{1,2,3}]
的东西发挥作用,尽管(等待编译器支持)
相关文章:
- 为什么在popback()操作之后,它仍然打印完整的矢量
- 重载操作程序时出错>>用于类中的字符串 memebr
- 对字符串进行位操作
- 我可以在 C++ 中的函数体之外进行操作吗?
- MPI突然停止了对多个核心的操作
- 如何在信号处理程序和普通函数中对全局变量进行互斥读写操作
- 对字符数组中的元素执行逐位操作
- 如何在directx/c++中进行平移/缩放操作
- 逐位操作的隐式类型转换
- 为什么一个向量上的多线程操作很慢
- 排序时无法执行交换操作.我做的时候它会崩溃.为什么
- 位移操作和位掩码未检测到重复字符
- 如何进行特定的位操作?
- 当我们进行一些操作时,应该使用什么'std::string'或'std::stringstream'?
- 字符串操作 - 字符计数
- 此代码中的操作流程是什么?C/C++.
- 复制和交换习惯用法与移动操作之间的交互
- 像union_这样的 Boost.Geometry 操作如何处理浮点类型的基本不精确性?
- 为什么 std::lerp 不适用于任何已实现所需操作的类型?
- 无法合并生成操作.. 先决条件不同