| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 378 人关注过本帖
标题:函数指针问题,高手帮忙看下,谢了。
只看楼主 加入收藏
刚开始吧
该用户已被删除
收藏
已结贴  问题点数:20 回复次数:2 
函数指针问题,高手帮忙看下,谢了。
提示: 作者被禁止或删除 内容自动屏蔽
搜索更多相关主题的帖子: 指针 函数 
2010-05-06 22:32
最近不在
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:204
专家分:842
注 册:2010-2-28
收藏
得分:8 
#include<iostream>
using namespace std;
class A
{
public:
    //int (A::*j_point)(int j);  //这一行去掉,类里面没用到
public:
    int show(int j)
    {
         return int(j);
    }
};
long display(int i)
{
   return long(i);
}
int main()
{
    int (A::*j_point)(int j) = &A::show;  //在此处申明定义j_ponit初始化
    A a;
    cout<<(a.*j_point)(5)<<endl;
   
    long (*i_point)(int i);
    i_point=display;
    cout<<i_point(5)<<endl;
    return 0;
}
2010-05-06 23:40
debroa723
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:23
帖 子:862
专家分:1954
注 册:2008-10-12
收藏
得分:12 
class A;//得先声明这个类
typedef int ( A::*FunPtr_t )(int j) ;
class A
{
public:
  FunPtr_t m_pFun;
......
}
使用
A a;
a.m_pFun = &A::show ;
(a.*(a.m_pFun))(5);//你的错误应该是调用时有问题,要先用*取出函数指针的函数地址,而类的成员函数指针的调用是需要
实例化的对象来调用,所以要加上a.来调用这个函数,和调用类的成员变量和成员函数一样的概念。
2010-05-07 00:56
快速回复:函数指针问题,高手帮忙看下,谢了。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038233 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved