【发布时间】:2017-06-03 04:03:54
【问题描述】:
我正在尝试使用上面指向函数的指针调用该函数,但它一直显示此错误:明显调用括号前的表达式必须具有 (pointer-to-) 函数类型。有什么帮助吗?
#include<iostream>
using namespace std;
class a
{
public:
a(){}
int f(float m){cout<<"called.\n";return 1;}
};
int main()
{
int (a::*ptr2)(float m) = &a::f;
a *p ,obj;
p = &obj;
obj.*ptr2(.8);
p->*ptr2(.5);
}
【问题讨论】:
-
试试
(obj.*ptr2)(.8);和(p->*ptr2)(.5);。 -
此代码不使用指向函数的指针。它使用一个指向成员函数的指针。它们是完全不同的两件事。
标签: c++