当前位置:首页 > 网络技术 > c++代码示例大全(简单好玩的编程代码)(c语言代码简单例子)

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

longge2022-03-24 01:47:34网络技术45

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

对称加密速度快加密大数据块文件特点,加密密钥和解密密钥是一样的

非对称加密,加密速度慢、加密强度高高,安全性特点,加密密钥和解密密钥不一样

#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;
}
免责声明
本站部分资源来源于互联网 如有侵权 请联系站长删除
龙哥网是优质的互联网科技创业资源_行业项目分享_网络知识引流变现方法的平台为广大网友提供学习互联网相关知识_内容变现的方法。#转载请注明出处!

“c++代码示例大全(简单好玩的编程代码)(c语言代码简单例子)” 的相关文章

windows 7系统每次开机都显示配置windows update

windows 7系统每次开机都显示配置windows update

windows 7操作系统每次开机的时候都要更新,显示windows update,关掉方法: 开始——控制面板——windows update 关闭自动更新!...

jquery实现淘宝APP收货地址地区联动选择效果(优化版)

jquery实现淘宝APP收货地址地区联动选择效果(优化版)

使用jQuery模仿淘宝移动端APP中,添加收货地址时选择所在地区的省、市、区、县街道四级联动的选择效果。 效果如下图: 原插件:https://www.jq22.com/jqu...

CRM:不同业务场景下的线索流转策略(CRM线索转化)

CRM:不同业务场景下的线索流转策略(CRM线索转化)

这次分享一个CRM系统中最为常见的业务模块:线索流转策略。这里指的「线索流转」是包含线索从产生到转化为商机、客户之前的全过程。涉及到线索如何进行分层、分配的策略以及相关的奖励与惩罚机制。之前看到很多文...

3dsMax写实场景制作案例教学(龙哥网)

3dsMax写实场景制作案例教学(龙哥网)

课程介绍3DS MAX 2020是一款由Autodesk公司开发的三维建模、动画和渲染软件,2020新版本更新增加了Chamfer修改器的改进,扩展了对OSL着色的支持,为动画预览添加了新的功能等等。...

15堂抖音高手经验传承密训(15堂抖音高手经验传承密训 peter)

15堂抖音高手经验传承密训(15堂抖音高手经验传承密训 peter)

课程介绍帮你解决以下问题: 怎么5场破冷启动?直播间没流量怎么做?投放不起量怎么做?主播留不住人怎么破?流量下滑怎么做?搜索关键词怎么玩?视频爆品怎么选?学习地址百度:https://pan.baid...

Map集合循环遍历的几种方式(map集合遍历的三种方式)

Map集合循环遍历的几种方式(map集合遍历的三种方式)

代码如下: package cn.jdbc.test;import java.util.HashMap;import java.util.Iterator;import java.util.Ma...