qfedu-cpp-level/day10/stl_algorithm_demo/d1.cpp

34 lines
606 B
C++

// 函数对象
// 仿函数: 一元,二元仿函数
#include <iostream>
using namespace std;
// 一元仿函数
class A
{
public:
A(int n) : n(n) {}
int n;
// 重载 operator() 运算符,只要调用 A 对象的 (int x) ,就会给对象的对应成员对象加一个 x
A &operator()(int i)
{
this->n += i;
return *this;
}
};
void print(A a, int n) // A a = A(30)
{
a(n);
cout << "a.n = " << a.n << endl;
}
int main()
{
// 打印 a 对象的值加额外的值的结果
print(A(20), 3); // A(20) 会创建一个匿名对象
return 0;
}