C++ C++;箭头运算符重载。如何获取被访问方法的名称?

C++ C++;箭头运算符重载。如何获取被访问方法的名称?,c++,operator-overloading,overloading,dereference,C++,Operator Overloading,Overloading,Dereference,我想用这种方法重载数组操作符 A b; b->c; 而b->c应该扩展到 boverloadarrayfunction(“c”) 可能吗 编辑:免责声明我知道这是件坏事 原因:我想在QueryInterface中添加间接级别 运算符->不是数组运算符。C++操作符中没有一个是这样调用的,但是最适合这个名称的是索引 opeAtter []/Calp> 你想要的是不可能的。然而,在b->c中,c是一个符号,即某个变量或函数的名称“c”是一个字符串文字,第一个不能转换为后者(除非使用某种黑色预

我想用这种方法重载数组操作符

A b;
b->c;
b->c
应该扩展到
boverloadarrayfunction(“c”)
可能吗

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

原因:我想在QueryInterface中添加间接级别

  • 运算符->
    不是数组运算符。C++操作符中没有一个是这样调用的,但是最适合这个名称的是索引<代码> opeAtter []/Calp>
  • 你想要的是不可能的。然而,在
    b->c
    中,
    c
    是一个符号,即某个变量或函数的名称<另一方面,代码>“c”
  • 是一个字符串文字,第一个不能转换为后者(除非使用某种黑色预处理器魔法,它不适合表达式
    b->c

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

    您可以重载
    运算符->
    ,但如果重载的作用不像指针,那么这样做是非常糟糕的。您认为哪个运算符是“数组运算符”?和
    c
    不会仅仅因为您希望它成为字符串。我甚至不敢猜测OP特别描述的执行此操作的代码会是什么,甚至读得更少。因为,。。你知道,
    b[c]
    就是不能解决这个问题吗?@ZacHowland:我同意-我不想尝试去理解这样的代码中发生了什么。