游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3262|回复: 8

请教关于函数指针

[复制链接]

2

主题

454

帖子

460

积分

中级会员

Rank: 3Rank: 3

积分
460
发表于 2004-12-21 00:20:00 | 显示全部楼层 |阅读模式
大家好!
我在程序中想使用函数指针,做如下实验:
class CA
{
public:
    int lcFun(int a){ return a; }
};
CA ca;
typedef int (CA::*PTRFUN)(int);
PTRFUN pFun;
void main()
{
    pFun = CA::lcFun;

    ca.(*pFun)(2) ;
}

可是编译会出现错误。
ca.(*pFun)(2) ;
行报错:
error C2059: syntax error : '('

很不明白……请大家指点。
或请指教关于类中的函数指针的用法。谢谢 [em7]

24

主题

229

帖子

229

积分

中级会员

Rank: 3Rank: 3

积分
229
发表于 2004-12-21 02:42:00 | 显示全部楼层

Re:请教关于函数指针

我也困惑了,查了查书,把最后一句改成:

(ca.*pFun)(2) ;

编译通过。

2

主题

454

帖子

460

积分

中级会员

Rank: 3Rank: 3

积分
460
 楼主| 发表于 2004-12-21 10:26:00 | 显示全部楼层

Re:请教关于函数指针

为什么呢?查的什么书啊?

30

主题

398

帖子

403

积分

中级会员

Rank: 3Rank: 3

积分
403
QQ
发表于 2004-12-21 13:07:00 | 显示全部楼层

Re:请教关于函数指针

(ca.(*pFun))(2) ;

5

主题

18

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2004-12-21 16:09:00 | 显示全部楼层

Re:请教关于函数指针

class CA
{
public:
    int lcFun(int a){ return a; }
        typedef int (CA::*PTRFUN)(int);
};

CA ca;

CA:TRFUN pFun;

int main(){

    pFun = ca.lcFun;
       
    (ca.*pFun)(2); //与ca.lcFun(2);等价
       
    return 0;
}

24

主题

229

帖子

229

积分

中级会员

Rank: 3Rank: 3

积分
229
发表于 2004-12-21 16:16:00 | 显示全部楼层

Re:请教关于函数指针

这是c++语法问题,没什么为什么。
c++ primer 3rd

33

主题

669

帖子

669

积分

高级会员

Rank: 4

积分
669
QQ
发表于 2004-12-22 09:26:00 | 显示全部楼层

Re:请教关于函数指针

看了半天 , 结论也是语法问题

37

主题

378

帖子

388

积分

中级会员

Rank: 3Rank: 3

积分
388
QQ
发表于 2004-12-22 22:59:00 | 显示全部楼层

Re:请教关于函数指针

运算符优先级……

2

主题

454

帖子

460

积分

中级会员

Rank: 3Rank: 3

积分
460
 楼主| 发表于 2004-12-24 05:29:00 | 显示全部楼层

Re:请教关于函数指针

谢谢各位~~~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-23 20:56

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表