从结构指针调用重载操作符函数

Calling overloaded operator function from struct pointer

本文关键字:操作符 函数 重载 调用 结构 指针      更新时间:2023-10-16

我在c++中有以下结构体

struct Jam
{
    void operator()()
    {
        cout << "Test";
    }
};

我可以像这样调用重载函数:

Jam j;
j();

但是我想知道从指向同一结构的指针调用函数的正确方法是什么。例如:

Jam *j = new Jam;
j->();

我收到错误,告诉我它需要一个函数名。这可能吗?谢谢!

最简单、最清晰的方法是对指针解引用:

(*j)();

或者,您可以将->语法与函数名(即operator())一起使用:

j->operator()();