我想用这种方式重载数组运算符。
A b;
b->c;
并且CCD_ 1应该扩展到boverloadarrayfunction("c");
有可能吗?
编辑:免责声明我知道这是件坏事。
为什么:我想向QueryInterface添加间接级别。
operator->
是而不是数组运算符。没有一个C++运算符是以这种方式正式调用的,但最适合这个名称的是索引opeator[]
- 你想要什么是不可能的。在
b->c
中,c
是一个符号,即某个变量或函数的名称。另一方面,"c"
是一个字符串文字,第一个不能转换为后者(除了一些黑色预处理器魔术,它不适合表达式b->c
)
您可能想了解重载operator->
是如何工作的,因为它的特殊之处在于它必须返回一个指针或另一个重载了b-> c
0的对象。编译器将对任何返回的对象调用->
,直到它真正取消引用指针为止。