带有operator()的类

C++中operator关键字的用法(重载运算符)(括号运算符operator())-CSDN博客

本文与上面的文章内容一致,建议大家看上面的文章!

在C++中,括号运算符operator()是一种重载运算符,它可以使得一个类的对象像函数一样被调用。

当我们在一个对象后面使用一对圆括号时,编译器会自动调用该对象的括号运算符operator(),并将括号内的参数传递给它。该运算符的返回值可以是任意类型,包括指针,引用,值或类类型等。

cpp 复制代码
class MyFunctor {
public:
    int operator()(int x, int y) {
        return x + y;
    }
};

上面的类重载了括号运算符operator(),使得它可以接收两个int类型的参数,并返回它们的和。

cpp 复制代码
#include<iostream>
using namespace std;

int main()
{
    MyFunctor myFunc;
    int res = myFunc(3,4);
}

我们可以创建一个MyFunctor类型的对象,并将其当做函数一样进行调用。

相关推荐
我能坚持多久20 分钟前
C++的Vector学习:从功能探索到底层实现
开发语言·c++·学习
凤凰院凶涛QAQ22 分钟前
《C++转java快速入手系列》类与对象篇
java·开发语言·c++
张健115640964829 分钟前
std::ranges、std::views和懒加载
开发语言·c++
瞎折腾啥啊33 分钟前
现代 CMake 目标系统
c++·cmake·cmakelists
盐焗鹌鹑蛋35 分钟前
【C++】list类
c++
minji...35 分钟前
Linux 网络套接字编程(六)TCP的通信是全双工的,自定义协议的定制,序列化和反序列化
linux·运维·服务器·网络·c++
ximu_polaris37 分钟前
设计模式(C++)-行为型模式-策略模式
c++·设计模式·策略模式
迷途之人不知返1 小时前
List的学习
数据结构·c++·学习·list
6Hzlia1 小时前
【Hot 100 刷题计划】 LeetCode 23. 合并 K 个升序链表 | C++ 顺序合并
c++·leetcode·链表
今夕资源网1 小时前
Visual C++运行库合集 V104.0 一个github免费开源的项目VisualCppRedist AIO
开发语言·c++·dll修复工具·dll修复·运行库·修复软件