c++代码示例大全(简单好玩的编程代码)
策略模式就是准备一组算法,并将每一个算法封装起来,使得他们可以互换(这儿的关键就是算法的逻辑抽象,接口封装到一个类中,再通过委托的方式将具体的算法实现委托给具体的类来实现),现在小编就来说说关于c++代码示例大全?下面内容希望能帮助到你,我们来一起看看吧!
c++代码示例大全
策略模式就是准备一组算法,并将每一个算法封装起来,使得他们可以互换(这儿的关键就是算法的逻辑抽象,接口封装到一个类中,再通过委托的方式将具体的算法实现委托给具体的类来实现)
对称加密速度快加密大数据块文件特点,加密密钥和解密密钥是一样的
非对称加密,加密速度慢、加密强度高高,安全性特点,加密密钥和解密密钥不一样
#include<iostream>using namespace std;class Strategy{public: virtual void crypy() = 0;};class AES :public Strategy{public: virtual void crypy() { cout << "AES加密算法 " << endl; }};class DES :public Strategy{public: virtual void crypy() { cout << " DES加密算法" << endl; }};class Context{public: void setStrategy(Strategy *strategy) { this->strategy = strategy; } void myoperator() { strategy->crypy(); }private: Strategy *strategy;};void main(){ // DES *des = new DES; des->crypy(); delete des; Strategy*strategy = NULL; strategy= new DES; Context *context = new Context; context->setStrategy(strategy); context->myoperator(); delete strategy; delete context; system("pause"); return;}
中介者模式就是定义一个中介对象,未封装系列对象之间的交互,终结者是各个对象不需要显示的相互调用,从而使其耦合性松散,而且可以独立的改变他们之间的交互
中介者问题抛出
#include<iostream>using namespace std;#include"string"class Person{public: Person(string name, int sex, int condi) { m_name=name; m_sex=sex; m_condi = condi; } string getName() { return m_name; } int getSex() { return m_sex; } int getCondi() { return m_condi; }protected: string m_name; int m_sex; int m_condi;};class Women :public Person{public: Women(string name, int sex, int condi) :Person(name, sex, condi) { } virtual void getParter(Person*p) { if (this->m_sex == p->getSex()) { cout << "我不是同性恋..(这里就是问题研究,不带任何感情色彩)" << endl; } if (this->getCondi() == p->getCondi()) { cout << this->getName() << "和" << p->getName() << "绝配" << endl; } else { cout << this->getName() << "和" << p->getName() << "bu配" << endl; } }};class Man :public Person{public: Man(string name, int sex, int condi) :Person(name, sex, condi) { } virtual void getParter(Person*p) { if (this->m_sex == p->getSex()) { cout << "我不是同性恋..(这里就是问题研究,不带任何感情色彩)" << endl; } if (this->getCondi() == p->getCondi()) { cout << this->getName() << "和" << p->getName() << "绝配" << endl; } else { cout << this->getName() << "和" << p->getName() << "bu配" << endl; } }};void main(){ Person *xiaofang = new Women("小芳", 2, 5); Person *zhangsan = new Man("张三", 1, 4); Person *lisi = new Man("李四", 2, 5); xiaofang->getParter(zhangsan); xiaofang->getParter(lisi); system("pause"); return;}
中介者代码实现
#include<iostream>using namespace std;#include"string"class Person{public: Person(string name, int sex, int condi, Mediator*m) { m_name = name; m_sex = sex; m_condi = condi; mediator = m; } string getName() { return m_name; } int getSex() { return m_sex; } int getCondi() { return m_condi; }protected: string m_name; int m_sex; int m_condi; Mediator mediator;};class Mediator//中介这的抽象父类{public: virtual void getParter() = 0; void setMan(Person*pMan) { pMan = man; } void setWomen(Person*pMan) { pWomen = women; }public: virtual void getParter() { if (pWomen->getSex() == pMan->getSex()) { cout << "我不是同性恋..(这里就是问题研究,不带任何感情色彩)" << endl; } if (pWomen->getCondi() == pMan->getCondi()) { cout << pWomen->getName() << "和" << pMan->getName() << "绝配" << endl; } else { cout << pWomen->getName() << "和" << pMan->getName() << "bu配" << endl; } }private: Person *pWomen; Person *pMan;};class Women :public Person{public: Women(string name, int sex, int condi, Mediator*m) :Person(name, sex, condi,m) { }public: virtual void getParter(Person*p) { mediator->setMan(p); mediator->setWomen(this); mediator->getParter(); }};class Man :public Person{public: Man(string name, int sex, int condi, Mediator*m) :Person(name, sex, condi,m) { }public: virtual void getParter(Person*p) { mediator->setMan(this); mediator->setWomen(p); mediator->getParter(); }};void main(){ Mediator *m = new Mediator; Person *xiaofang = new Women("小芳", 2, 5,m); Person *zhangsan = new Man("张三", 1, 4,m); Person *lisi = new Man("李四", 2, 5,m); xiaofang->getParter(zhangsan); xiaofang->getParter(lisi); system("pause"); return;}
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com