function pointer 函数指针 怎么用?

startstartsvip 2011-04-13 12:18:40
Class A
{
class B;
}


A 有两个方法

int move(int input);
void stop();


在 B 里面 如何通过 函数指针 的方式呼叫A 的两个方法? 请详细介绍比如 在B 里面怎么声明,
怎样指向函数,和怎么调用。

已知 B 里面:

if(rnd()>0.5){
调用 move
}else{
调用 stop
}



先多谢了
...全文
107 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
booxiong 2011-04-13
  • 打赏
  • 举报
回复
成员函数指针的调用肯定只能够由该对象是调用
booxiong 2011-04-13
  • 打赏
  • 举报
回复

class OA;
typedef int (OA::*_MOVE)(int input);
class OA
{
public:
OA()
{
ib.move = &OA::move;
}

class IB
{
public:
void work(OA* poa,int input)
{
((poa)->*(move))(input);
}
_MOVE move;
};

int move(int input)
{
cout<<"move"<<input<<endl;
return input;
}

IB ib;
};
int main()
{
OA oa;
oa.ib.work(&oa,10);
}
pathuang68 2011-04-13
  • 打赏
  • 举报
回复
1楼的那个不适合回答这个问题,请参考这个:
普通成员函数指针
pathuang68 2011-04-13
  • 打赏
  • 举报
回复
wongys 2011-04-13
  • 打赏
  • 举报
回复
定义个对象,去调用不就行了,或都再具体点问题。
luciferisnotsatan 2011-04-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 pathuang68 的回复:]

1楼的那个不适合回答这个问题,请参考这个:
普通成员函数指针
[/Quote]
++
startstartsvip 2011-04-13
  • 打赏
  • 举报
回复
多谢多谢! 明天回复

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧