函数对象概念
重载和拿书调用操作符的类, 该对象称为函数对象
函数对象使用重载的()时, 行为类似函数调用, 也叫仿函数
函数对象(其实就是仿函数)是一个类, 不是一个函数
函数对象的使用
函数对象在使用时, 可以像普通函数那样调用,可以有参数, 可以有返回值
函数对象超出普通函数的概念, 函数对象可以有自己的状态
函数对象可以作为参数传递
class MYprint
{
public:
MYprint()
{
this->count = 0;
}
void operator()(string test)
{
cout << test << endl;
this->count++;
}
int count; // 内部自己状态
}
MYprint myprint;
myprint("hello world");
cout << "myprint 调用的次数为" << myprint.count << endl;
函数对象作为参数进行传递
void doPrint(MYprint &mp, string test)
{
mp(test);
}
MYprint myprint;
doPint(myprint, "hello c++");