从struct指针调用重载的operator函数

时间:2013-05-03 00:08:56

标签: c++ class operator-overloading

我在C ++中有以下结构

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

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

Jam j;
j();

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

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

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

1 个答案:

答案 0 :(得分:10)

最简单,最清晰的方法是取消引用指针:

(*j)();

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

j->operator()();