c++代码示例大全(简单好玩的编程代码)

策略模式就是准备一组算法,并将每一个算法封装起来,使得他们可以互换(这儿的关键就是算法的逻辑抽象,接口封装到一个类中,再通过委托的方式将具体的算法实现委托给具体的类来实现),现在小编就来说说关于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

    分享
    投诉
    首页