cpp的策略模式

来源:互联网 发布:苹果4s4g网络 编辑:程序博客网 时间:2024/04/30 03:34
////  main.cpp//  strategyPartner////  Created by bikang on 16/11/17.//  Copyright (c) 2016年 bikang. All rights reserved.//#include <iostream>using namespace std;class StrategyCd{public:    virtual  void getCd(string cdinfo)=0;    virtual ~StrategyCd(){}};class XmlCd:public StrategyCd{    void getCd(string cdinfo){        cout << "XmlCd "<< cdinfo<< endl;    }    ~XmlCd(){}};class JsonCd:public StrategyCd{    void getCd(string cdinfo){        cout << "JsonCd "<< cdinfo<< endl;    }    ~JsonCd(){}};//安装不同的算法输出cd的内容class Cd{public:    Cd(string name, StrategyCd *s):cdname(name),_strate(s){}    void setStrategy(StrategyCd *s){        this->_strate = s;    }    void makeCd(){        this->_strate->getCd(cdname);    }private:    StrategyCd *_strate;    string cdname;};int main(int argc, const char * argv[]) {    XmlCd *xml = new XmlCd();    JsonCd *json = new JsonCd();    Cd *c1 = new Cd("李宇春",xml);    c1->makeCd();    c1->setStrategy(json);    c1->makeCd();    std::cout << "end!\n";    return 0;}
0 0
原创粉丝点击