16,471
社区成员
发帖
与我相关
我的任务
分享
#ifndef MYARRAY_H
#define MYARRAY_H
template <class T>
class CMyArray //二维数组
{
public:
CMyArray(int row, int col);
~CMyArray();
T& operator()(int row, int col); //访问第row行,col列的元素
private:
T* m_pData; //数组指针
int m_iRow; //行
int m_iCol; //列
};
template <class T>
CMyArray<T>::CMyArray(int row, int col)
{
m_pData = new T[row * col]; //申请row * col 大小的空间
m_iRow = row;
m_iCol = col;
}
template <class T>
CMyArray<T>::~CMyArray()
{
if (m_pData)
delete[] m_pData;
}
template <class T>
T& CMyArray<T>::operator ()(int row, int col)
{
return m_pData[row * m_iCol + col];
}
#endif
#include "stdafx.h"
#include "MyArray.h"
int _tmain(int argc, _TCHAR* argv[])
{
#define MAX_ROW 8 //行
#define MAX_COL 8 //列
CMyArray<int> arr(MAX_ROW, MAX_COL);
//设置数据
for (int i = 0; i < MAX_ROW; i++)
for (int j = 0; j < MAX_COL; j++)
{
arr(i, j) = i * 8 + j;
}
//输出
for (int i = 0; i < MAX_ROW; i++)
{
for (int j = 0; j < MAX_COL; j++)
printf("%4d", arr(i, j));
printf("\n");
}
getchar();
return 0;
}