c中用运算符重载实现两数组相加.docVIP

  • 19
  • 0
  • 约2.06千字
  • 约 7页
  • 2017-06-10 发布于北京
  • 举报
#includeiostream.h #include iomanip.h #includememory.h class CTwoArray { int *ptr; //数组指针,指向二维数组的第一行第一列的元素 int row; //数组行数 int col; //数组列数 public: CTwoArray(int m,int n); //构造函数 ~CTwoArray(); //析构函数 CTwoArray(const CTwoArray a); //拷贝构造函数 void set(); //从键盘输入数据,给二维数组元素赋值 CTwoArray operator+( CTwoArray b); //重载为类的成员函数 void print(); //输出二维数组元素 int get_row(); int get_col(); }; inline int CTwoArray::get_row(void) { return row; } inline int CTwoArray::get_col(void) { return col; } /* * 构造函数使二维数组初值为0 */ CTwoArray::CTwoArray(int m, int n) { 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 = new int[a.col*a.row]; memset(ptr,0,a.col*a.row); memcpy(ptr,a.ptr,a.col*a.row); couthanyong1; } /* * 键盘输入值 */ void CTwoArray::set() { int i; int j; for(i = 0; irow; i++) { for(j = 0; jcol; j++) { cout请输入第i+1行j+1列的值; cin*(ptr+i+j); } } } /* * 输出函数 */ void CTwoArray::print() { int i; int j; for(i = 0; irow; i++) { for(j = 0; jcol; j++) { coutsetw(5)*((ptr+i)+j) ; } cout\n; } } /* * 运算符 + 重载函数 */ CTwoArray CTwoArray:: operator+( CTwoArray b) { int i; int j; for(i = 0; irow*col; i++) { // for(j = 0; jcol; j++) // { *(ptr+i) = *(ptr+i) + b.ptr[i]; // } } return *this; } /* * 当现实结构用Array3表示时有问题经过不断的尝试发现用连个对象就行了 */ int main() { CTwoArray Array1(2,3); CTwoArray Array2(2,3); //CTwoArray Array3; //CTwoArray Array2 = Array1; //利用复制构造函数初始化 Array1.set(); Array1.print(); Array2.set(); Array2.print(); cout两个数组相加的和是:endl; Array1 = Array1 + Array2; //CTwoArray Array3 = Array1 + Array2; Array1.print(); return 0; }

文档评论(0)

1亿VIP精品文档

相关文档