在Model类中定义了两个函数和一个函数指针,并在构造函数中将指针指向其中一个函数,如下:
class Model
{
public: double (Model::*fun)(int i) const;
public: double f1( int i ) const;
double f2(int i) const;
Model(bool condition)
{ if (condition ) fun = &Model::f1;
else fun = &Model::f2;
}
};
在另外一个类B中定义了一个Model常指针model,并指向了一个Model常实例m,至此都没有问题,但是在B中使用以下语句时即出现错误
(model->fun)( i )
并提示:项不会计算为接受一个参数的函数
一楼有提及使用方式_( (model->fun)( i ))_,我也试过,这个好像才是函数指针的标准用法,但也不行,还多了一个错误:
错误 2 error C2171: “”:“double (__thiscall Model::* const )(int i) const”类型的操作数非法
c++,在类中使用函数指针时碰上错误:表达式必须具有 (pointer-to-) 函数类型
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-