c++通过运算符[]重载实现一重和二重数组

2017-01-13 11:28:40来源:作者:人点击

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<

 

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台