读书人

C++ 编程Memento方式技术应用法则

发布时间: 2012-09-09 09:27:54 作者: rapoo

C++ 编程Memento模式技术应用法则

C++ 编程Memento模式技术应用法则

?????? 本文主要是对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(); ?}
  • void?main() ?{ ?
  • Orininator*?Ori=new?Orininator(); ?Ori->SetState("old"); ?
  • Ori->PrintState(); ?Memento*?m=Ori->CreateMemento(); ?
  • Ori->SetState("new"); ?Ori->PrintState(); ?
  • Ori->RestoretoMen(m); ?Ori->PrintState(); ?
  • }

    以上就是对C++ Memento模式的相关介绍。呵呵,如果有不当之处,敬请指正啊-----

  • 读书人网 >编程

    热点推荐