首页 > 编程 > C++ > 正文

C++模板类的用法

2020-05-23 14:20:15
字体:
来源:转载
供稿:网友

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源文件如下:

 

复制代码代码如下:
// 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++程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表