#include <iostream>
#include <cassert>
using namespace std;
template <class T,size_t SIZE1,size_t SIZE2>
class Array2D{
public:
template<class T, size_t SIZE>
class Array1D{
public:
T& operator[](size_t index){
assert(index < SIZE2);
return m_a[index];
}
const T& operator[](size_t index)const{
assert(index < SIZE2);
return m_a[index];
}
private:
T m_a[SIZE];
};
Array1D<T, SIZE2>& operator[](size_t index){
assert(index < SIZE1);
return m_a1D[index];
}
const Array1D<T, SIZE2>& operator[](size_t index)const{
assert(index < SIZE1);
return m_a1D[index];
}
private:
Array1D<T,SIZE2> m_a1D[SIZE1];
};
int main(){
int i = 900;
Array2D<int, 2, 2> a;
a[1][1] = 900;
a[0][0] = a[1][1];
cout << a[0][0] << endl;
const Array2D<int, 2, 2> b;
cout << b[1][1] << endl;
return 0;
}
模板二维数组
最新推荐文章于 2024-11-11 22:07:06 发布