#include <iostream>
using namespace std;
template <class T>
class CArray3D {
public:
static int size2, size1;
class CArray1D {
public:
T * a1;
CArray1D() { a1 = new T[size1]; }
T &operator[](int k) {
return a1[k];
}
~CArray1D() { if (a1)delete[]a1; }
};
class CArray2D {
public:
CArray1D *a2;
CArray2D(){ a2 = new CArray1D[size2]; }
CArray1D & operator[](int j) {
return a2[j];
}
~CArray2D() { if (a2) delete []a2; }
};
CArray2D *a3;
CArray3D(int size3_, int size2_, int size1_) { size1 = size1_; size2 = size2_; a3 = new CArray2D[size3_]; }
CArray2D &operator[](int i) {
return a3[i];
}
~CArray3D() { if (a3)delete []a3; }
};
template <class T>
int CArray3D<T>::size2;
template <class T>
int CArray3D<T>::size1;
int main()
{
CArray3D<int> a(3, 4, 5);
int No = 0;
for (int i = 0; i < 3; ++i)
for (int j = 0; j < 4; ++j)
for (int k = 0; k < 5; ++k)
a[i][j][k] = No++;
for (int i = 0; i < 3; ++i)
for (int j = 0; j < 4; ++j)
for (int k = 0; k < 5; ++k)
cout << a[i][j][k] << ",";
return 0;
}
7w1
最新推荐文章于 2021-05-29 13:11:50 发布