代理模式C++实现

来源:互联网 发布:cern数据 编辑:程序博客网 时间:2024/06/14 11:39



































#include <iostream>#include <string>class Method                         //公共接口{public:void virtual giveDolls(){return;}void virtual giveFlowers() {return;}protected:private:};class Boy : public Method{public:Boy(std::string s) : BoyName(s) {}Boy() = default;void giveDolls()override {std::cout << "give you dolls" << std::endl;}void giveFlowers() override {std::cout << "give you flowers" << std::endl;}protected:private:std::string BoyName;};class Girl{public:std::string GirlName;Girl() = default;Girl(std::string s) : GirlName(s) {}void showGirl() {std::cout << GirlName << std::endl;}protected:private:};class Proxy : public Method     /*代理*/{public:Proxy() = default;Proxy(Girl g, Boy b) : mm(g), gg(b) {}void showGirl() {mm.showGirl();}void giveDolls() override {gg.giveDolls();}void giveFlowers() override {gg.giveFlowers();}protected:private:Girl mm;Boy gg;};void main() {Boy b("XiaoMing");Girl g("XiaoHong");Proxy p(g, b);p.showGirl();p.giveFlowers();p.giveDolls();}


0 0
原创粉丝点击