c++ - 如何创建和使用类箭头运算符?

标签 c++ class operator-keyword

所以,在到处研究之后,我似乎找不到如何创建类箭头运算符,即,

class Someclass
{
  operator-> ()  /* ? */
  {
  }
};

我只需要知道如何使用它并适本地使用它。 - 它的输入是什么? - 它返回什么? - 如何正确声明/原型(prototype)化它?

最佳答案

运算符 -> 用于重载成员访问。一个小例子:

#include <iostream>
struct A 
{
    void foo() {std::cout << "Hi" << std::endl;}
};

struct B 
{
    A a;
    A* operator->() {
        return &a;
    }
};

int main() {
    B b;
    b->foo();
}

这个输出:

Hi

关于c++ - 如何创建和使用类箭头运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4928557/

相关文章:

C++ 在一个类中实例化一个类。正确的方法?

c++ - 类中的对象数组

c++ - 为什么定义 "++"operator over bool ?但是 "--"不在 C++ 中

Python += 与全局变量函数内的 .extend()

c++ - Vscode/C++ - cout 无法输出完整句子且无法与整数连接

c++ - ifstream 不会在下一次迭代中打开文件

c++ - 一种交换 vector 的方法,可能吗?

c++ - 如何使用 SimpleIni 返回 wchar_t 然后转换为 std::wstring?

c++ - 类定义和内存分配

angularjs - Angular-js 代码缩小错误 : Unexpected token: operator (>)