定义:为其他对象提供一种代理以控制对这个对象的访问。
#include <iostream>
using namespace std;
// 租房抽象类
class Renter
{
public:
virtual void rent_house() = 0;
};
// 具体租客:ZhangSan
class ZhangSan : public Renter
{
public:
void rent_house()
{
cout << "张三需要租房" << endl;
}
};
// 租房代理
class AgentProxy : public Renter
{
public:
AgentProxy(Renter* renter)
{
pRenter = renter;
}
~AgentProxy()
{
delete pRenter;
}
void rent_house()
{
pRenter->rent_house();
cout << "租房代理收取了20%的费用" << endl;
}
private:
Renter* pRenter;
};
void test_01()
{
// zhangsan
Renter* zhangsan = new ZhangSan;
// 找代理帮忙找房
Renter* proxy = new AgentProxy(zhangsan);
proxy->rent_house();
delete zhangsan;
delete proxy;
}
int main()
{
test_01();
system("pause");
return 0;
}