C++ Memento模式应用法则

C++编程语言中的应用方式比较灵活,我们可以通过各种模式来实现特定的功能。比如今天为大家介绍的C++ Memento模式,就是一个非常有用的应用模式,希望大家可以从中获得一些帮助。

C++ Memento模式代码示例:

#include< iostream> 



#include< string> 



using namespace std;  


typedef string states;  


class Memento;  


class Orininator  


{  


public:  



Orininator(){m_st="";m_mt=0;};  




Orininator(const states& st){m_st=st;m_mt=0;};  



~Orininator(){};  


Memento* CreateMemento();  


void SetMemento(Memento* men){};  


void RestoretoMen(Memento* mt);  


states GetState(){return m_st;};  



void SetState(const states& sdt){m_st=sdt;}  




void PrintState(){cout< this->m_st< < ".."< < endl;}  



private:  


states m_st;  


Memento* m_mt;  


}; 
class Memento  


{  


private:  


friend class Orininator;//友元  


Memento(){};  



Memento(const states& st){m_st=st;};  



~Memento(){};  



void SetState(const states& std){m_st=std;};  



states GetState(){return m_st;};  


private:  


states m_st;  


}; 
Memento* Orininator::CreateMemento()  


{  


return new Memento(m_st);//合理的应用构造函数;  


}  


void Orininator::RestoretoMen(Memento* mt)  


{  



this->m_st=mt->GetState();  



} 

c++

相关推荐