- 论坛徽章:
- 0
|
/**
文件名: Array.h
作者: Tomsdinary
备注: 本文件中的实现是静态数组实现模版
最后修改时间: 2007年10月31日
*/
#ifndef _ARRAY1D_H_
#define _ARRAY1D_H_
namespace Tomsdinary
{
template <typename T, unsigned int SIZE>
class Array1D //一维数组
{
public:
Array1D () {}
T& operator[] (unsigned int pos)
{
return m_data[pos];
}
unsigned int GetLength () const
{
return SIZE;
}
private:
Array1D (const Array1D<T, SIZE>& other);
Array1D<T, SIZE>& operator= (const Array1D<T, SIZE>& other);
T m_data[SIZE];
}; //end of class Array1D
template <typename T, unsigned int INDEX1, unsigned int INDEX2>
class Array2D //二维数组www.hidianying.cn
{
public:
Array2D () {}
Array1D<T, INDEX2>& operator[] (unsigned int pos)
{
return m_data[pos];
}
unsigned int GetFristLength () const
{
return INDEX1;
}
unsigned int GetSecondLength () const
{
return INDEX2;
}
private:
Array2D (const Array2D<T, INDEX1, INDEX2>& other);
Array2D<T, INDEX1, INDEX2>& operator= (const Array2D<T, INDEX1, INDEX2>&
other);
Array1D<T, INDEX2> m_data[INDEX1];
}; //end of class Array2D
template <typename T, unsigned int INDEX1, unsigned int INDEX2, unsigned int INDEX3>
class Array3D //三维数组
//此教程来源于97xxoo教程网(www.97xxoo.org)查看完整的教程请点:http://www.97xxoo.org/article/4/2008/20081105246.shtml
{
public:
Array3D () {}
Array2D<T, INDEX2, INDEX3>& operator[] (unsigned int pos)
{
return m_data[pos];
}
unsigned int GetFristLength () const
{
return INDEX1;
}
unsigned int GetSecondLength () const
{
return INDEX2;
}
unsigned int GetThirdLength () const
{
return INDEX3;
}
private:
Array3D (const Array3D<T, INDEX1, INDEX2, INDEX3>& other);
Array3D<T, INDEX1, INDEX2, INDEX3>& operator= (const Array3D<T, INDEX1,
INDEX2, INDEX3>& other);
Array2D<T, INDEX2, INDEX3> m_data[INDEX1];
}; //end of class Array3D
}// end of namespace Tomsdinary
#endif |
|