c++设计模式之备忘录模式
来源:互联网 发布:双序列比对算法 编辑:程序博客网 时间:2024/06/04 00:21
#include <iostream>#include <vector>using namespace std;class Memento{public:int m_vitality;int m_attack;int m_defense;public:Memento(int vitality, int attack, int defense) :m_vitality(vitality), m_attack(attack), m_defense(defense){}/*Memento& operator=(const Memento& memento){m_vitality = memento.m_vitality;m_attack = memento.m_attack;m_defense = memento.m_defense;return *this;}*/};class GameRole{private:int m_vitality;int m_attack;int m_defense;public:GameRole() :m_vitality(100), m_attack(100), m_defense(100){}Memento Save(){Memento memento(m_vitality, m_attack, m_defense);return memento;}void Load(Memento memento){m_vitality = memento.m_vitality;m_attack = memento.m_attack;m_defense = memento.m_defense;}void Show(){cout << "vitality" << m_vitality << endl;cout << "attack" << m_attack << endl;cout << "defense" << m_defense << endl;}void Attack(){m_vitality -= 10;m_attack -= 10;m_defense -= 10;}};class Caretake{public:Caretake(){}void Save(Memento memento){ m_vecMemento.push_back(memento); }Memento Load(int state){ return m_vecMemento[state]; }private:vector<Memento> m_vecMemento;};int main(){Caretake caretake;GameRole role;role.Show();caretake.Save(role.Save());role.Attack();role.Show();role.Load(caretake.Load(0));role.Show();cin.get();}
阅读全文
0 0
- 设计模式之备忘录
- 设计模式之备忘录
- 设计模式之备忘录
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式 之 备忘录模式
- 设计模式之备忘录模式
- 剑指offer——复杂链表的复制_
- HTC Vive开发笔记之手柄震动
- AC自动机【萌新文章】
- UE4之玩家攻击AI(4)
- A Trip To Deep Learning
- c++设计模式之备忘录模式
- 块级元素列表
- 数据结构 Dijkstra(迪杰斯特拉)算法
- poj3415
- AngularJS路由之ui-router(四)$state.go页面跳转
- WebSocket使用整理
- 读书笔记-人月神话2
- spring 学习(一)
- 刚买的服务器无法通过ip访问