我有一个基类和一个类,应该是仿函数,像这样:
class BFunctor {};
class Add : public BFunctor {
public:
int operator()(int x, int y) {
return x + y;
}
};
Run Code Online (Sandbox Code Playgroud)
我打算创建几个这些子类,并在名为ops的映射中存储指向它们的指针,如下所示:
map<string, BFunctor*> ops {};
Add add;
ops["sum"] = &add;
Run Code Online (Sandbox Code Playgroud)
但是,在这之后,为什么我不能像这样使用函数对象:
int x = ops["sum"](3, 5);
Run Code Online (Sandbox Code Playgroud)
我的linter说"明显调用的括号前面的表达式必须有(指向 - ) - 函数类型"
并且编译器说"错误:表达式不能用作函数".
c++ ×1