手机
当前位置:查字典教程网 >编程开发 >C语言 >C++模板类的用法
C++模板类的用法
摘要:本文实例讲述了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++模板类的用法】相关文章:

sigsetjmp的用法总结

snprintf函数的用法解析

C++中引用的使用总结

C++按位异或运算符的使用介绍

C++函数中return语句的使用方法

C++模板类的用法实例

C++十六进制宏的用法详解

C/C++可变参数的使用

linux之sort命令的用法

浅析c++中new和delete的用法

精品推荐
分类导航