1.c语言中回调基本都过函数指针来完成。c++中主要通过接口的方式完成回调。而visitor就是实现接口回调的一种方式。
1.首先定义个一个接口visitor类,
class classVisitor { public: virtual: void oncallBack(int a,char*b)=0; };
2.要获得回调结果的(father)类需要继承这个visitor类,并实现oncallBack接口。
void father::oncallBack(int a, char * b){ m_a = a; m_b = b; }
3.底层通过调用回调函数oncallBack函数,回调信息。底层需要实现一个setVisitor函数方便上层传递上层对象,并继承提供setVistitor的接口类
int father::int() { son->setVisitor(this); }
一共有三/四个类,1个上层类:获取回调信息,实现回调接口。
1个底层类:实现设置访问者接口,上传信息。
1个含有回调函数的接口类,供给上层继承。
1.个含有设置访问接口的类,供给下层继承。(可单独设置一个类让底层类来继承,亦可以直接放在底层类中)
3.4两个类可实现为类中类,也可单独实现,就是将两个抽象类联系到了一起。
原文链接: https://www.cnblogs.com/mcy0808/p/10832267.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/294870
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!