【发布时间】:2017-05-05 07:56:29
【问题描述】:
我在业余时间学习 C++,并且正在实现一个重载下标 /[] 运算符的类。现在,我希望能够将两个或多个参数传递给下标运算符,如下所示(用逗号分隔):
myObject[i,j,...],其中参数可以是 strings 或 ints
我发现 C++ 不允许下标运算符接受多个参数。但是,我在this thread 中阅读了有关重载逗号运算符的信息,作为该“问题”的替代解决方案。
在示例中,逗号运算符使用非常特定的签名进行重载,带有两个自定义 Enum,但我可以看到对于通用类型对重载逗号运算符不是一个好主意(这将是我的用例)。
由于我对 C++ 的了解有限,这让我很好奇是否有可能将逗号运算符重载的“范围”或使用限制在特定情况或上下文中,例如,仅在下标运算符重载中定义,给我我感兴趣的功能,而不会对其他地方造成干扰。
【问题讨论】:
标签: c++ operator-overloading comma-operator