函数调用运算符重载()
1.函数调用运算符就是()
2.由于重载后使用的方式非常像函数的调用,因此被称为仿函数
3.仿函数没有固定的写法非常灵活
举例写法1:
#include <iostream>
using namespace std;
class person
{
public:
int operator()(int a, int b)
{
return a + b;
}
person(int a,int b)
{
a = m_a;
b = m_b;
}
int m_a;
int m_b;
};
int main()
{
person p(10, 20);
cout << p(20, 20);
}
举例写法二:
#include <iostream>
using namespace std;
class person
{
public:
void operator()(int a ,int b)
{
cout << a + b;
}
person(int a,int b)
{
a = m_a;
b = m_b;
}
int m_a;
int m_b;
};
int main()
{
person p(10, 20);
p(20, 20);
}
总之非常灵活。
#include <iostream>
using namespace std;
class person
{
public:
void operator()(int a ,int b)
{
cout << a + b;
}
};
int main()
{
person()(1, 1);
}
person()(1, 1)这个叫做匿名函数对象,直接可以调用,不用创建一个新的对象,在stl中使用比较多(stl后面会跟新)