C++——函数调用运算符重载

运算符重载概念:对已有的运算符进行定义,赋予其另一种功能,以适应不同的数据类型
     *函数调用运算符()也是可以重载的
     * 由于重载后使用的方式非常像函数的调用,因此称为仿函数
     *仿函数没有固定写法,非常灵活

实例:

#include<iostream>
using namespace std;
#include<string>

//函数调用运算符重载

//打印输出类
class MyPrint
{
public:

	//重载函数调用运算符
	void operator()(string test)//operator()  函数名
	{
		cout << test << endl;
	}

};

void MyPrint02(string test)
{
	cout << test << endl;
}

void test01()
{
	MyPrint myPrint;

	myPrint("hello world");//这是在类中重载小括号
	//由于使用起来非常类于函数调用,因此称为仿函数
	//只要在一个类当中重载了小括号就叫仿函数
	MyPrint02("hello world");//这是函数调用
}

//仿函数非常灵活,没有固定的写法
//加法类

class MyAdd
{
public:

	int operator()(int num1, int num2)
	{
		return num1 + num2;
	}

};

void test02()
{
	MyAdd myadd;
	int ret = myadd(100, 100);
	cout << "ret=" << ret << endl;

	//匿名数对象:类型+()会被创建出来,后面的()就是重载的运算符
	cout << MyAdd()(100, 100) << endl;

}
int main()
{
	test01();
	test02();

	system("pause");

	return 0;

}

仅个人看视频笔记与理解,如有误可指出谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值