C++模板类的用法

2020-01-06 13:01:53王振洲

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);