主要内容:
- 函数符的概念
- 预定义的函数符
函数符的概念
函数符是可以以函数的方式与 () 结合使用的任意对象(此处对象不仅指类对象);
函数名、指针、重载了 () 运算符的类对象都是函数符;
函数符概念:
- 生成器:不用参数即可调用的函数符;
- 一元函数:用一个参数就能调用的函数符;
- 二元函数:用两个参数可以调用的函数符;
- 谓词:返回 bool 值的一元函数;
- 二元谓词:返回 bool 值的二元函数;
两个参数的函数可以被转换成单参数的函数对象(P710);
bool func(const int & val, const int & lim)
{
return val > lim;
}
class A {
private:
int x;
public:
A(const int & t) : x(t) {}
bool operator()(const int & v) { return func(v, x); }
}
A a(100);
int b;
cin >> b;
if ( a(b) ) // 等价于 func(b, 100);
...
预定义的函数符
头文件 < functional > , P711