当前位置: 首页 > news >正文

自己怎么开网站备案佛山哪家网站建设比较好

自己怎么开网站备案,佛山哪家网站建设比较好,展示型网站php,网站排名超快在读《大话设计模式》&#xff0c;在此记录有关C实现备忘录模式。 场景引入&#xff1a;游戏中的存档&#xff0c;比如打boss之前记录人物的血量等状态。 下面代码是自己根据理解实现的存档人物血量功能。 #include <iostream>using namespace std;//声明玩家类 class …

在读《大话设计模式》,在此记录有关C++实现备忘录模式。

场景引入:游戏中的存档,比如打boss之前记录人物的血量等状态。

下面代码是自己根据理解实现的存档人物血量功能。

#include <iostream>using namespace std;//声明玩家类
class GamePlayer {
public:GamePlayer(int volume = 100) :bloodVolume(volume) {};void setBloodVolume(int volume) {bloodVolume = volume;};void decreaseBloodVolume(int volume) {if (bloodVolume < volume){bloodVolume = 0;}else {bloodVolume = bloodVolume - volume;}}int getBloodVolume() {return bloodVolume;};void showBloodVolume() {std::cout << "当前角色血量为" << bloodVolume << std::endl;}private:int bloodVolume;	//血量
};//声明备忘录类
class memorandum {
public:void setMemor(GamePlayer& setPlayer){std::cout << "正在存档..." << std::endl;this->player.setBloodVolume(setPlayer.getBloodVolume());}void getMemor(GamePlayer& getPlayer){std::cout << "正在读档..." << std::endl;getPlayer.setBloodVolume(player.getBloodVolume());}private:GamePlayer player;
};int main()
{GamePlayer player(60);	player.showBloodVolume();memorandum playerMemory;//存档playerMemory.setMemor(player);//模拟玩家受到攻击player.decreaseBloodVolume(20);player.showBloodVolume();//回档playerMemory.getMemor(player);player.showBloodVolume();return 0;
}

上面这段代码,声明了一个备忘录类,传入要存档的对象,获取其数据,临时存储在private的成员变量中。读档的时候引用传入玩家类,根据需要拷贝原先存储的数据。但是如果这时候需要添加蓝量相关的数据存储,需要修改的代码很多,首先是备忘录类中函数获取的数据要修改。然后玩家类中要新添加操作蓝量对应的接口。将备忘录类放在玩家类中,可以避免这些接口的声明

代码如下:

#include <iostream>
#include <memory>using namespace std;//声明玩家类
class GamePlayer {
public:GamePlayer(int volume = 100) :bloodVolume(volume) {};//声明备忘录类class memorandum {public:int bloodVolume;memorandum(int bloodNum) :bloodVolume(bloodNum) {};};void setBloodVolume(int volume) {bloodVolume = volume;};void decreaseBloodVolume(int volume) {if (bloodVolume < volume){bloodVolume = 0;}else {bloodVolume = bloodVolume - volume;}}int getBloodVolume() {return bloodVolume;};void showPlayerState() {std::cout << "当前角色血量为" << bloodVolume << std::endl;}//存档void savePlayerState() {std::cout << "存档中..." << std::endl;memor = std::make_shared<memorandum>(bloodVolume);}void readPlayerState() {std::cout << "读档中..." << std::endl;bloodVolume = memor->bloodVolume;		//读取人物血量}private:int bloodVolume;	//血量std::shared_ptr<memorandum> memor;
};int main()
{GamePlayer player(60);	player.showPlayerState();player.savePlayerState();//模拟玩家受到攻击player.decreaseBloodVolume(20);player.showPlayerState();//读档档player.readPlayerState();player.showPlayerState();//再次受到攻击player.decreaseBloodVolume(10);player.savePlayerState();player.readPlayerState();	//读档player.showPlayerState();	//展示当前数据return 0;
}

这时,如果存档和读档更多的数据比如蓝量,怒气值,经验等,客户端代码不需要修改,仅需要修改玩家类中的代码。

http://www.yayakq.cn/news/414541/

相关文章:

  • 有多少网站建设外包网页设计模板图片美食
  • 夺宝网站是怎么做推广的python自学必看的3本书
  • 源代码管理网站wordpress 响应式企业主题
  • 松江营销型网站建设公司wordpress 删除google
  • ios手机网站建设游戏网站建设策划方案模板
  • 网站平台怎么做的好处个人介绍网页制作
  • 产品型网站案例敬请期待的英语
  • 偷dede网站模板免费学编程的软件
  • 成都网站建设全平台网站开发的流程图和原型图
  • 莱芜高端网站建设价格手机网站开发在pc端
  • 江西恒通建设工程有限公司网站白云区建材网站建设
  • 可以做图接单的网站手工做女宝宝衣服的网站
  • 网站怎么做关键词在哪做苏州电子商务网站开发公司
  • 咸阳网站建设学校合肥建网站公司
  • 建设网站如果赚钱外包seo服务收费标准
  • 昆明网站建设logovi网站建设用户登录
  • wap asp网站模板下载什么叫网站空间
  • 事务所网站建设企业工商查询官网
  • 电子商务做网站骗钱怎么办pa66用途障车做网站
  • 手机网站设计规范南昌网站建设方案优化
  • 域名哪个网站好网站页眉设计
  • html网站设计实验报告现在还有人做网站吗
  • pw域名网站个人博客网页设计html
  • 墙纸 html 网站模板四博互联做的网站
  • 网站域名可以更换吗国外有什么好的网站
  • 企业网站建设软件需求分析wordpress手动数据库优化
  • 网站设计 品牌设计南京做网站的有哪些
  • 广东省建设网站apache 多个网站
  • 老网站改版做别的网站右侧广告代码
  • 男女做暖网站做设计兼职的网站有哪些工作