zoukankan      html  css  js  c++  java
  • 桥接模式(C++)

    #include <iostream>
    using namespace std;
    
    class software
    {
    public:
        software(){}
        virtual ~software(){}
        virtual void exec()=0;
    };
    
    class game : public software
    {
    public:
        game(){}
        virtual ~game(){}
        void exec(){cout<<"play game"<<endl;}
    };
    
    class office : public software
    {
    public:
        office(){}
        virtual ~office(){}
        void exec(){cout<<"work office"<<endl;}
    };
    
    class computer
    {
    public:
        computer():_instance(NULL){}
        virtual ~computer(){}
        void setsoftware(software *instance){_instance=instance;}
        virtual void Exec()=0;
    
    protected:
        software *_instance;
    };
    
    class wincomputer : public computer
    {
    public:
        wincomputer(){}
        virtual ~wincomputer(){}
        void Exec(){cout<<"win  ";_instance->exec();}
    };
    
    class maccomputer : public computer
    {
    public:
        maccomputer(){}
        virtual ~maccomputer(){}
        void Exec(){cout<<"mac  ";_instance->exec();}
    };
    
    int main()
    {
        computer *pc=new wincomputer;
        software *ps=new office;
        pc->setsoftware(ps);
        pc->Exec();
        delete ps;
        delete pc;
    
        pc=new maccomputer;
        ps=new game;
        pc->setsoftware(ps);
        pc->Exec();
        delete ps;
        delete pc;
    
        system("pause");
        return 0;
    }
  • 相关阅读:
    递归算法
    C#委托
    final 、finally
    JSP中的日期问题
    为GirdView添加CSS样式
    PC连Moto V180上网
    CSS条状图表:垂直型
    树型列表的实现
    关闭窗口无提示
    用PhotoShop做漂亮的相框,哈哈
  • 原文地址:https://www.cnblogs.com/tiandsp/p/2561172.html
Copyright © 2011-2022 走看看