如何解决函数指针 - 明显调用的括号前的表达式必须具有指向函数类型
我有一堂课:
#include<map>
class myclass {
public:
typedef std::map<std::string,int(myclass::*)()> mymap;
void Foo() {
UpdateMap();
mymap1["AddToa"]();
mymap1["AddTob"]();
}
private:
int a;
int b;
mymap mymap1;
int AddToa(){ std::cout<< "add 2 to a: " << a+2 << std::endl;};
int AddTob(){ std::cout<< "add 2 to b: " << b+2 << std::endl;};
void UpdateMap(){
mymap1["AddToa"] = &myclass::AddToa;
mymap1["AddTob"] = &myclass::AddTob;
}
};
但是在 Foo() 中,当我尝试通过它们的指针调用这两个函数时:
mymap1["AddToa"]();
我收到此编译错误:
明显调用的括号前的表达式必须具有(指向)函数类型
我该怎么办?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。