有时需要一些行为类似于函数指针的东西,但函数指针显得笨拙.危险而且过时(让我们承认这一点).通常最佳方式是使用函数对象(function object)取代函数指针. 与智能指针一样,函数对象也是一个普通的类对象.智能指针类型重载 -> 和 * (可能还有 ->* 和 .*)操作符,来模仿指针的行为:而函数对象类型则重载函数调用操作符“()”,来创建类似于函数指针的东西.考虑如下函数对象,它的每次调用都计算众所周知的斐波拉切数列(1,1,2,3,5,8,13,...)的下一个元素值: clas…