#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
//这函数已经写好的
struct MyPrint
{
void operator () (int v1, int v2)
{
cout << v1 + v2 << endl;
}
};
//定义目标接口
class Target
{
public:
virtual void operator () (int v) = 0;
};
//写适配器
class Adapter : public Target
{
public:
Adapter(int param)
{
this->param = param;
}
virtual void operator () (int v)
{
print(v, param);
}
MyPrint print;
int param;
};
//绑定第二个参数
Adapter MyBind2rd(int v)
{
return Adapter(v);
}
int main()
{
vector<int> v;
for (int i = 0; i < 10; i++)
{
v.push_back(i);
}
for_each(v.begin(), v.end(), MyBind2rd(10));
return 0;
}
适配器模式案例
最新推荐文章于 2025-07-24 23:34:39 发布