函数对象
定义:
使用某一类的对象来替代某一函数
特点:
该类的对象具备函数调用的行为
在构造函数指定具体的数列项的起始位置
多个对象相互独立的求解数列项
实现:
函数访问操作符 ()
只能通过类的成员函数重载
可以定义不同参数的多个重载函数
#include <iostream> #include <string> using namespace std; class Fib { int a0; int a1; public: Fib() { a0 = 0; a1 = 1; } int operator () () // 重载()函数访问操作符 { int ret = a1; a1 = a0 + a1; a0 = ret; return ret; } }; int main() { Fib fib; for(int i=0; i<10; i++) { cout << fib() << endl; // 将对象fib以函数调用的形式进行使用 } return 0; }
意义:通过函数对象可以替换函数指针。
字符串:string对象代替
数组:数组对象代替
函数:函数对象代替