C++模板类的用法

2025-05-29 0 75

本文实例讲述了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++程序设计有所帮助。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 C++模板类的用法 https://www.kuaiidc.com/107186.html

相关文章

发表评论
暂无评论