回调函数的思想是否与面向对象编程的思想有冲突?

pan2008 2003-08-21 12:25:13
回调函数的思想是否与面向对象编程的思想有冲突?
...全文
57 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sevecol 2003-08-22
  • 打赏
  • 举报
回复
封装成函数对象。
alphasun 2003-08-22
  • 打赏
  • 举报
回复
用接口指针其实也是回调的一种形式。只不过 版面上 比较好看。

interface IFoo
{
virtual void Func(int a, int b, float c) = 0;
};

//////////////////
class CFoo : public IFoo
{
void Func(int a, int b, float c); // 实现了这个 interface

};


//////////////// 注册接口指针给别人. 别人可以通过这个接口指针来调用
CFoo foo;
GiveYouTheInterfacePointer((IFoo*)&foo);


///////////
GiveYouTheInterfacePointer(IFoo *pFoo)
{
m_pFoo = pFoo;
m_pFoo->Foo(1,2,3); // 此处进行了调用
}

pan2008 2003-08-22
  • 打赏
  • 举报
回复

接口指针和回调函数指针各是什么?
怎么注册?
注册后怎么用?
哪里有例子?
哪里有详细叙述?
pan2008 2003-08-22
  • 打赏
  • 举报
回复
what is 函数对象
alphasun 2003-08-21
  • 打赏
  • 举报
回复
回调的确是一个非常糟糕的机制。但是整个操作系统可以说大量的使用者回调机制。这种机制还是很经典的。

如果你觉得回调函数很恶心的话,你可以试试接口指针。注册一个接口指针比注册一个回调函数指针感觉上要好得多。而且接口指针里面可以放好多函数。并且,指针的类型要简洁得多(不像回调函数指针的类型那么罗嗦)。

============================================================================
提问题时标题要简明扼要地说明问题内容,切忌使用"急","求救"之类不能说明问题的标题
http://www.betajin.com/alphasun/ 遇到问题可以给我发消息,给我发信息时请附带原帖地址
http://alphasun.free-host.com/
DocWizard C++程序文档自动生成工具 | Wave OpenGL | HttpProxy | AjaxParser词法分析
chxinheifeng 2003-08-21
  • 打赏
  • 举报
回复
怕破坏封装性,要friend做什么啊?
brucegong 2003-08-21
  • 打赏
  • 举报
回复




对象模型之间只有消息吧




blue_coco 2003-08-21
  • 打赏
  • 举报
回复
破坏了封装性

64,649

社区成员

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

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