c++通过运算符[]重载实现一重和二重数组
程序员文章站
2023-01-28 15:53:21
c++通过运算符[]重载实现一重和二重数组:我们常用的数组都是c++自己定义的,近来,由于做项目的原因,自己通过运算符的重载,自己又重新写了一个,一维和二维数组。下面贴上代码:
class a{...
c++通过运算符[]重载实现一重和二重数组:我们常用的数组都是c++自己定义的,近来,由于做项目的原因,自己通过运算符的重载,自己又重新写了一个,一维和二维数组。下面贴上代码:
class a{ int row,col; //记录行号和列号 int data; //存储数据 a* p2; //分配内存 public: ///////////////////其对应的构造函数/////////////////// a():p2(null){} a(int x,int y=0):row(x),col(y){ p2=new a[x]; if(y!=0) for(int i=0;idata=x; } void setdbp(int m){p2=new a[m];} //新建多维数组 int operator!(){ return this->data; } //获取数组对应的值 /////////////////////数组数值的基本操作/////////////////////// int operator+(int x){return (this->data+x);} int operator+(a a){return (this->data+a.data);} int operator-(int x){return (this->data-x);} int operator-(a a){return (this->data-a.data);} int operator*(int x){return (this->data*x);} int operator*(a a){return (this->data*a.data);} double operator/(int x){return (this->data/x);} double operator/(a a){return (this->data/a.data);} ~a(){ if(p2) delete[] p2; } }; int _tmain(int argc, _tchar* argv[]) { /////////////////////////对一二维数组的操作///////////////////////// a a(3,5); for(int i=0;i<3;i++) for(int j=0;j<5;j++) a[i][j]=3*i+j; printf("%d ",!a[0][4]); cout<