C++模板类的用法
C++模板类的用法
发布时间:2016-12-28 来源:查字典编辑
摘要:本文实例讲述了C++模板类的用法,分享给大家供大家参考。具体实现方法如下:main.h头文件如下:复制代码代码如下:templateclas...

本文实例讲述了C++模板类的用法,分享给大家供大家参考。具体实现方法如下:

main.h头文件如下:

复制代码 代码如下: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源文件如下:

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

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新C语言学习
热门C语言学习
编程开发子分类