类成员函数的函数指针
来源:互联网 发布:cad室内平面图具体数据 编辑:程序博客网 时间:2024/04/29 18:21
类成员函数的函数指针,和普通函数的函数指针在使用时有一些区别,初学者可能会犯一些错误。
例如:
一个类中有五个相同形式的函数,想通过函数指针来作为接口
class CSimilarMethod
{
public:
double IntensityScore(int Peak1,int vPeak2);
double DP(int Peak1,int vPeak2);
double DP_Mod(int Peak1,int vPeak2);
double DP_Mod_Half(int Peak1,int vPeak2);
double MatchCount(int Peak1,int vPeak2);
private:
double (*SimilarFunc[5])(int, int);
};
在成员函数中赋值
SimilarFunc[0] = IntensityScore;
SimilarFunc[1] = DP;
SimilarFunc[2] = DP_Mod;
SimilarFunc[3] = DP_Mod_Half;
SimilarFunc[4] = MatchCount;
会出现编译错误"error C2440: “=” : 无法从“double (__thiscall CSimilarMethod::* )(int,int)”转换为“double (__cdecl *)((int,int))”"
需要在定义函数指针修改为double (CSimilarMethod::*SimilarFunc[5])(int, int);
在成员函数中使用函数指针时,SimilarFunc[m_eSimilarMethod](vPeak1, vPeak2);或者
(*SimilarFunc[m_eSimilarMethod])(Peak1, Peak2);均会报错“error C2064: 项不会计算为接受 2 个参数的函数”
修改为(this->*SimilarFunc[m_eSimilarMethod])(Peak1, vPeak2);后编译成功!
可参考此篇文章http://hi.baidu.com/coolbye/blog/item/22a405245f714733c8955989.html
- 类成员函数的指针
- 类的成员函数指针
- 类的成员函数指针
- 类的成员函数指针
- 类成员函数的指针
- 函数指针调用类的成员函数
- 指向 类成员函数 的 函数指针
- 类成员函数的函数指针
- 类成员函数的函数指针
- 函数指针调用类的成员函数
- 成员函数的指针
- 成员函数的指针
- 类成员函数指针
- 类成员函数指针
- 类成员函数指针
- 类成员函数指针
- 类成员函数指针
- 类成员函数指针
- C#==>结构
- 开博了
- 新闻组
- 【ACM】Martian Addition
- 个人反省
- 类成员函数的函数指针
- HP unix 下Device busy的解决方法
- 百度明推“框计算”,动手大干“云计算”
- Java SE -- 多线程 线程安全问题解决
- Oracle简单数据移动
- 坚持就是这样
- SQL Server 安装程序无法获取 ASPNET 帐户的系统帐户信息
- 开发系统简介
- 想多活几年吗??在中国到底什么能吃什么不能吃!(转)