> 文章列表 > 函数调用、

函数调用、

函数对象,简单概括,就是那些能够像函数一样被调用的对象。它们通过重载()运算符,让对象变成了一个"假扮"的函数,这可是C++世界里的变形金刚!例如,我们定义一个Print类,重载了operator(),让它能够打印字符串。创建一个Print对象ob,然后调用ob("hello world"),看起来像是在调用一个函数,实则是在调用对象的方法,这简直是黑科技!

那么,函数对象为什么这么牛呢?因为它们不仅能够像函数一样使用,还能携带状态。想象一下,你有一个函数对象,它可以保存一些内部数据,下次调用时,还能根据这些数据改变行为。这在实现复杂的逻辑时,可比普通函数强太多了。

再说说谓词,就是返回布尔值的函数或函数对象。它们就像是编程世界里的裁判,负责判断条件是否成立。比如,在STL中使用find_if查找元素时,谓词就是用来判断每个元素是否符合条件的。这让你的代码变得简洁又强大,只需要专注于判断条件即可,其他工作交给STL完成。

所以,无论是函数对象还是谓词,都在让C++代码变得更灵活、更优雅。想了解更多黑科技?C++的世界永远充满惊喜!

函数调用、

1、函数调用

重载了函数调用运算符()的类 实例化的对象 就叫做函数对象

函数对象+ ()触发 重载函数调用运算符 执行 ==》类似函数调用 (仿函数)

#include <iostream>

using namespace std;
class Print
{
public:
    void operator()(char *str)
    {
        cout<<str<<endl;
    }
};
void test01()
{
    Print ob;
    ob("hello world");
    Print()("hello wprld");
}

int main(int argc, char *argv[])
{
    test01();
    return 0;
}


如果一个函数对象有一个参数叫做 一元函数对象

如果一个函数对象有两个参数叫做 二元函数对象

若果一个函数对象有三个参数叫做 多元函数对象

2、谓词

返回值类型 为 bool 类型的 普通函数或者 仿函数都叫做 谓词