llk*_*llk 3 c++ class operator-overloading
我在C++中有以下结构
struct Jam
{
void operator()()
{
cout << "Test";
}
};
Run Code Online (Sandbox Code Playgroud)
我可以像这样调用重载函数:
Jam j;
j();
Run Code Online (Sandbox Code Playgroud)
但我想知道从指向同一结构的指针调用函数的正确方法是什么.例如,如果我有:
Jam *j = new Jam;
j->();
Run Code Online (Sandbox Code Playgroud)
我收到错误告诉我它需要一个函数名称.这可能吗?谢谢!
Jos*_*eld 10
最简单和最清晰的方法是取消引用指针:
(*j)();
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用->函数名称的语法(即operator()):
j->operator()();
Run Code Online (Sandbox Code Playgroud)