第三十五课 函数对象分析
一、函数对象
- 使用具体的类对象取代函数
- 该类的对象具备函数的调用行为
- 构造函数指定具体数列项的起始位置
- 多个对象相互独立的求解数列项
二、函数操作符重载"()"
- 只能通过类的成员函数重载
- 可以定义不同参数的多个重载函数
三、示例
代码
class test
{
private :
int a;
int b;
public :
test()
{
a = 0;
b = 1;
}
int operator () ()
{
int ret = b;
b = a + b;
a = ret;
return ret;
};
};class test{
};
int main(void)
{
int i = 0;
test t;
for(i = 0; i < 10; i ++)
{
cout << t() << endl;
}
}
四、小结
- 函数调用操作符"()"是可重载的
- 函数调用操作符只能通过类的成员函数重载
- 函数调用操作符可以定义不同参数的多个重载函数
- 函数对象用于在工程中取代函数指针