1.函数对象
重载函数调用运算符的类,它的对象被称为称为函数对象
对象的行为与函数十分相识。
#include
using namespace std;
class SumFunction{
public:
int operator()(int a,int b){
return a + b;
}
};
int main(int argc, char** argv) {
SumFunction summer1;
cout< return 0;
}
2.谓语函数
谓语函数是一个返回布尔值的函数。
一元谓语函数就是只有一个实参的函数
class IsEven{
public:
bool operator()(int x){
return x % 2 == 0;
}
};
二元谓语函数,就是有两个实参的函数
class LessThan{
public:
bool operator()(int x,int y){
return x > y;
}
};
3.Lambda表达式
#include
#include
#include
using namespace std;
/*Lambda表达式的形式*/
/*
[捕获从句] (形参列表) {函数体}
Lambda是函数对象
*/
class Square{
public:
void operator()(double a){
cout<