函数对象——C++11(十三)

定义的函数对象可像函数一样调用。

//函数对象定义
template<typename T>
class LessThan {
    const T val;    //待比较的值
public:
    LessThan(const T& v):val{v} {}
    bool operator()(const T& x) const { return x<val; } //调用运算符,实现了函数调用
}

LessThan t{43}; //定义函数对象
LessThan Its{"abc"s}; //字符串比较
LessThan<string> Its2{"abc"}; // "abc"为一个C风格字符串,因而要标识出类型,否则不能比较大小。
bool b = t(2); //执行函数

 

posted @ 2019-11-21 07:04  zmlgo  阅读(295)  评论(0编辑  收藏  举报