【问题标题】:Calling overloaded operator function from struct pointer从结构指针调用重载的运算符函数
【发布时间】:2013-04-27 07:31:03
【问题描述】:

我在 C++ 中有以下结构

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

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

Jam j;
j();

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

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

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

【问题讨论】:

    标签: c++ class operator-overloading


    【解决方案1】:

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

    (*j)();
    

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

    j->operator()();
    

    【讨论】:

    • 谢谢,这很有趣;只要允许我就会接受。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-24
    • 2018-05-20
    • 1970-01-01
    • 1970-01-01
    • 2013-08-18
    • 1970-01-01
    相关资源
    最近更新 更多