重载多维数组下标 c++
其实就是两个[]叠加起来,具体怎么实现看代码。
http://blog.csdn.net/hityct1/article/details/4123135
[cpp] view plain http://blog.csdn.net/hityct1/article/details/4123135 copy- #include
- #include
- using namespace std;
- template <class T> class arr;
- template <class T> class arrBody
- {
- private:
- friend class arr
; - T* data;
- int row,col,current_row;
- arrBody(int r,int c,T d):row(r),col(c)
- {
- data=new T[r*c];
- current_row=-1;
- for(int k=0;k
//初始化数据,默认为0 - data[k]=d;
- }
- public:
- T& operator[](int j) //重载第2个[]号
- {
- if(j>=0&&j
- return data[current_row*col+j];
- }
- ~arrBody(){delete[]data;}
- };
- template <class T> class arr
- {
- private:
- arrBody
tBody; - public:
- arrBody
&operator[](int i) //重载第一个[]号 - {
- if(i>=0&&i
- tBody.current_row=i;
- return tBody;
- }
- arr(int i,int j,T d=0):tBody(i,j,d) {}
- };
- void main()
- {
- arr<int> a(10,20);
- arr<double> b(5,5);
- cout<
- }
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
