欢迎来到天天文库
浏览记录
ID:62033264
大小:31.50 KB
页数:7页
时间:2021-04-15
《c中用运算符重载实现两数组相加.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#include〈iostream。h>#include 〈iomanip。h>#include<memory。h〉classCTwoArray{int*ptr; //数组指针,指向二维数组的第一行第一列的元素ﻩint row; //数组行数int col; //数组列数public:ﻩCTwoArray(intm,intn); //构造函数ﻩ~CTwoArray(); //析构函数CTwoArray(const CTwoArray&a); //拷贝构造函数ﻩvoidset();
2、 //从键盘输入数据,给二维数组元素赋值 CTwoArray&operator+( CTwoArray&b); //重载为类的成员函数voidprint(); //输出二维数组元素ﻩintget_row();intget_col();};inlineintCTwoArray::get_row(void){ﻩreturnrow;}inlineintCTwoArray::get_col(void){returncol;}/**构造函数使二维数组初值为0*/CTwoArray::CTwoAr
3、ray(intm, intn){ﻩrow= m;ﻩcol=n;ptr=new int[m*n];memset(ptr,0,m*n);}/**析构函数*/CTwoArray::~CTwoArray(){delete []ptr;ﻩptr =0;}/**拷贝构造函数*/CTwoArray::CTwoArray(const CTwoArray&a){ﻩﻩcol=a。col;row=a.row;ptr=newint[a.col*a.row];ﻩmemset(ptr,0,a。col*a。row);ﻩmemcpy(ptr,a.ptr,a.c
4、ol*a.row);ﻩcout<〈”hanyong1”;}/**键盘输入值*/voidCTwoArray::set(){ﻩint i;ﻩint j;for(i=0;i〈row;i++)ﻩ{ﻩﻩfor(j=0;j〈col;j++)ﻩﻩ{cout〈<”请输入第"〈〈i+1<〈"行”<>*(ptr+i+j);ﻩﻩ}ﻩ}}/**输出函数*/void CTwoArray::print(){inti;int j;for(i= 0; i<row;i++){ﻩfor(j=0; j<col; j++)ﻩ{cou
5、t<〈setw(5)<〈*((ptr+i)+j)〈<"";ﻩ}ﻩcout<<"”;ﻩ}}/** 运算符 +重载函数*/CTwoArray&CTwoArray::operator+(CTwoArray&b){inti;ﻩint j;ﻩfor(i =0;i<row*col;i++){ﻩ//for(j=0;j〈col;j++)ﻩ//ﻩ{ﻩ*(ptr+i)= *(ptr+i)+b.ptr[i];//}ﻩ}ﻩreturn *this;}/**当现实结构用Array3表示时有问题经过不断的尝试发现用连个对象就行了*/int main()
6、{CTwoArray Array1(2,3);CTwoArrayArray2(2,3);//CTwoArrayArray3;//CTwoArrayArray2=Array1; //利用复制构造函数初始化Array1.set();ﻩArray1。print();Array2.set();Array2.print();cout<〈”两个数组相加的和是:"〈〈endl;Array1 =Array1 + Array2;//CTwoArrayﻩArray3=Array1+Array2;ﻩArray1。print();ﻩreturn0;}
此文档下载收益归作者所有