1.1 函数指针和函数对象
函数指针和函数对象相同点是两者均可以函数的形式调用,但不同是函数指针无法自己携带数据,必须依靠传入参数完成一定功能。而函数对象自己可以持有数据,减少与外界的耦合。
1.2 函数级别多态
1.2.1回调概念
辅助类或函数将自身传递给上下文类,以在适当的时机供上下文类调用。
1.2.2函数指针实现方式
一个函数,称之为上下文函数,可以组合一个另一个函数,称之为策略函数,上下文函数可以通过组合不同的策略函数实现函数级别的多态。那么我们如何实现函数的组合呢?答案是利用函数指针,利用函数指针增加函数的弹性。把策略函数的指针传递给上下文函数,在不改变上下文函数代码的情况下通过调用策略函数而实现函数级别的多态。在c语言中用途广泛。
1.2.3函数对象实现方式
同上,传递函数指针改为传递函数对象。典型应用,C++ STL中排序算法,排序算法需要利用一个函数对象,进行不同策略的排序。<