在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 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
悬赏问题
- ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
- ¥88 找成都本地经验丰富懂小程序开发的技术大咖
- ¥15 如何处理复杂数据表格的除法运算
- ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
- ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
- ¥200 uniapp长期运行卡死问题解决
- ¥15 latex怎么处理论文引理引用参考文献
- ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
- ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
- ¥15 乘性高斯噪声在深度学习网络中的应用