c/c++语言开发共享c++通过运算符[]重载实现一重和二重数组

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<

 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/606463.html

(0)
上一篇 2021年5月13日
下一篇 2021年5月13日

精彩推荐