前言
回调函数或者回调模式应用的场景大多都是子类去调用父类的方法,因为有时候子类实现的方法涉及到父类的变量或函数时,直接利用回调函数即可在父类中实现该方法。
提示:以下是本篇文章正文内容,下面案例可供参考
一、回调是什么?
示例:现有类A,类B,类A是类B的基类,现类B通过指针调用类A中的方法,则这就称之为回调,在c++中一般利用接口或抽象类进行实现,如下所示。
二、简单实现
代码如下(示例):
#include <iostream>
class registe{
public:
virtual void callA() = 0;
};
class B {
public:
void setACall(registe *registerA) {
a = registerA;
};
void print() {
a->callA();
};
private:
registe* a;
};
class A:public registe
{
public:
A() {
b = new B();
b->setACall(this);
b->print();
};
void callA() {
std::cout << "a:a"<<std::endl;
};
private:
B *b;
};
int main()
{
A* a = new A();
return 0;
}
输出如下所示
图片:
|