1.函数对象概念
概念:
重载函数调用操作符的类,其对象常成为函数对象函数对象使用重载的()时,行为类似函数调用,也叫仿函数本质:函数对象(仿函数)是一个类,不是一个函数
2.函数对象(仿函数)使用特点:
函数对象在使用时,可以像普通函数那样调用,可以有参数,可以有返回值函数对象超出普通函数的概念,函数对象可以有自己的状态函数对象可以作为参数传递//1.函数对象在使用时,可以像普通函数那样调用,可以有参数,可以有返回值classMyAdd{public:intoperator()(intv1,intv2){returnv1+v2;}};//2.函数对象超出普通函数的概念,函数对象可以有自己的状态classMyPrint{public://自己内部状态intcount;MyPrint(){this-count=0;}voidoperator()(stringtest){couttestendl;this-count++;}};//.函数对象可以作为参数传递voiddoPrint(MyPrintmp,stringtest){mp(test);}voidtest01(){//1.函数对象在使用时,可以像普通函数那样调用,可以有参数,可以有返回值MyAddmyadd;coutmyadd(10,10)endl;//2.函数对象超出普通函数的概念,函数对象可以有自己的状态MyPrintmyprint;myprint("helloworld");myprint("helloworld");cout"myprint的调用次数:"myprint.countendl;//.函数对象可以作为参数传递doPrint(myprint,"helloworldsda");}intmain(){test01();system("pause");return0;}