0

我想以这种方式重载数组运算符。

A b;
b->c;

并且b-> c应该扩展到 boverloadarrayfunction("c"); 是否可能?

编辑:免责声明我知道这是坏事。

原因:我想向 QueryInterface 添加间接级别。

4

1 回答 1

0
  1. operator->不是数组运算符。没有一个 C++ 运算符被正式称为这种方式,但最适合该名称的是 indexing opeator[]
  2. 你想要的是不可能的。b->c然而,可以实现的inc是一个符号,即某个变量或函数的名称。"c"另一方面是字符串文字,第一个不能转换为后者(除了一些黑色的预处理器魔法,它不适合表达式b->c)。

您可能想查看重载的operator->工作原理,因为它的特殊之处在于它必须返回一个指针或另一个已operator->重载的对象。编译器将调用->任何返回的对象,直到它真正取消引用一个指针。

于 2013-08-27T08:54:55.093 回答