【C/C++】仿函数

  • 函数调用运算符 () 也可以重载
  • 由于重载后使用的方式非常像函数的调用,因此称为仿函数
  • 仿函数没有固定写法,非常灵活

示例:

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


class MyPrint
{
public:
	//重载的运算符是"()",(string text)是参数列表。
	void operator()(string text)
	{
		cout << text << endl;
	}

};
void test01()
{
	//重载的()操作符 也称为仿函数
	MyPrint myFunc;
	myFunc("hello world");
}


class MyAdd
{
public:
	//重载的运算符是"()",(int v1, int v2)是参数列表。
	int operator()(int v1, int v2)
	{
		return v1 + v2;
	}
};

void test02()
{
	MyAdd add;
	int ret = add(10, 10);
	cout << "ret = " << ret << endl;

	//MyAdd()是匿名对象,当前行执行完,立即被释放。
	cout << "MyAdd()(100,100) = " << MyAdd()(100, 100) << endl;
}

int main() {

	test01();
	test02();

	system("pause");

	return 0;
}

由于使用起来非常类似于函数的调用,因此称为仿函数。

相关推荐
程序猿(雷霆之王)1 分钟前
C++11——线程库
开发语言·c++
a3535413821 分钟前
设计模式-桥接模式
c++·设计模式·桥接模式
panamera128 分钟前
C++ 中 static 关键字
java·开发语言·c++
程序炼丹师11 分钟前
stat函数的核心作用与详细解析
开发语言·c++
liulilittle15 分钟前
XDP VNP虚拟以太网关(章节:二)
linux·服务器·网络·c++·通信·xdp
李兴球19 分钟前
飞向蓝天!pxC++编辑器与C++精灵库是什么关系?
c++·c++精灵库·pxc++编辑器·c++海龟画图·c++小火箭绘图·c++可视化编程·c++gui
yangpipi-21 分钟前
《C++并发编程实战》第6章 设计基于锁的并发数据结构
开发语言·数据结构·c++
越努力^越幸运26 分钟前
C中部分的字符函数
c语言
我叫袁小陌39 分钟前
C++内存分布详解
开发语言·c++
Hi2024021742 分钟前
如何向Virtual Audio Cable写入自定义音频数据
c++·windows·音视频·virtualaudio·虚拟音频线