C++箭头运算符重载.如何获取被访问方法的名称
C++ arrow operator overloading. How to get name of accessed method?
我想用这种方式重载数组运算符。
A b;
b->c;
并且CCD_ 1应该扩展到boverloadarrayfunction("c");
有可能吗?
编辑:免责声明我知道这是件坏事。
为什么:我想向QueryInterface添加间接级别。
operator->
是而不是数组运算符。没有一个C++运算符是以这种方式正式调用的,但最适合这个名称的是索引opeator[]
- 你想要什么是不可能的。在
b->c
中,c
是一个符号,即某个变量或函数的名称。另一方面,"c"
是一个字符串文字,第一个不能转换为后者(除了一些黑色预处理器魔术,它不适合表达式b->c
)
您可能想了解重载operator->
是如何工作的,因为它的特殊之处在于它必须返回一个指针或另一个重载了b-> c
0的对象。编译器将对任何返回的对象调用->
,直到它真正取消引用指针为止。
相关文章:
- 通过方法访问结构
- 为了访问方法,从基类动态转换为派生类
- 访问方法的返回类型
- 是否有对 Clang 递归 ASTVisitor 的最终访问方法
- 具有各种访问方法的自定义数据结构
- 另一个子模块错误的 omnet 访问方法 - 调用 'check_and_cast(cModule*&)' 没有匹配函数
- 使用矢量迭代器访问方法
- 从其他 C++ 文件访问方法
- C++箭头运算符重载.如何获取被访问方法的名称
- 访问方法C++时出现问题
- 易失性成员的访问方法
- 在实例化之前访问方法
- 是否不希望将指针存储在具有不同访问方法的多个容器中?
- 在c++中查看类中基于参数的私有变量的访问方法
- 在继承错误之后访问方法
- 最好的方法访问方法的派生类c++
- 是否存在具有多访问方法的可变模板变体
- 为指向类的指针数组制定访问方法时遇到问题
- 转发类,无法访问方法
- 我可以在 Python 中创建我的 C++ 对象,但无法访问方法