一个函数的参数是个函数指针,这个函数指针就是回调函数。
这个函数再外面实现,传到主调函数内部,被调用。
感觉类似于,虚函数,多态,继承。
当调用那个主调函数时候,主调函数内部代码不用改,不用修改实现,不用编译。直接把函数调用参数改一下就行。
类似于多态,传递一个对象对象在函数内部调用一个函数。基类指针可以指向派生类,传递一个派生类,主调函数代码不变,就可以改变行为具体的行为。重写虚函数。地址不一样,形式上一样,其实调用的不同函数。。
这个和函数指针一样,主调的内部调用都是一样的,就像多态中的虚函数,完全一样的调用形式。指针也一样,内部就是(*p)(10),要是多态,内部就是bbject.fun(10);因为传递的参数,既函数不一样,行为也重定义了。
本质,内部调用形式一致,不用修改代码编译,只要修改传入参数的实现,就会有不同的实现结果。