源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C++模板类的用法

  • 时间:2020-01-10 23:30 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C++模板类的用法
本文实例讲述了C++模板类的用法,分享给大家供大家参考。具体实现方法如下: main.h头文件如下:
[u]复制代码[/u] 代码如下:
template <class T>  class actioncontainer  {  public:      //构造函数      actioncontainer()      {          m_nRedoPos = 0;          m_nUndoPos = 0;      }      //容器的接口函数      void add(T value);      T redo();      T undo();      //容器的属性  private:      int m_nRedoPos;      int m_nUndoPos;      const static int ACTION_SIZE=5;        T m_RedoAction[ACTION_SIZE];      T m_UndoAction[ACTION_SIZE];  };    template<class T>  void actioncontainer<T>::add(T value)  {      if (m_nUndoPos >= ACTION_SIZE)      {          //如果容器已潢,刚调整添加位置          m_nUndoPos = ACTION_SIZE - 1;          for(int i = 0; i < ACTION_SIZE; i++)          {              m_UndoAction[i] = m_UndoAction[i+1];          }      }      m_UndoAction[m_nUndoPos++] = value;  }    template<class T>  T actioncontainer<T>::redo()  {      //将恢复动作复制到撤销数组中      m_UndoAction[m_nUndoPos++] = m_RedoAction[--m_nRedoPos];        //返回恢复的动作      return m_RedoAction[m_nRedoPos];  }    template<class T>  T actioncontainer<T>::undo()  {      m_RedoAction[m_nRedoPos++] = m_UndoAction[--m_nUndoPos];        return m_UndoAction[m_nUndoPos];  }
main.cpp源文件如下:
[u]复制代码[/u] 代码如下:
// test_iostream.cpp : 定义控制台应用程序的入口点。  //  #include "StdAfx.h"  #include "main.h"  using namespace std;    int _tmain(int argc, _TCHAR* argv[])  {      actioncontainer<int> intaction;        //向容器中加动作      intaction.add(1);      intaction.add(2);      intaction.add(3);      intaction.add(4);        //撤销上一步动作      int nUndo = intaction.undo();      nUndo = intaction.undo();        //恢复      int nRedo = intaction.redo();      return 0;  }
希望本文所述对大家的C++程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部