cpp2.cpp

来自「一、教学目的: 能理解C++中运算符重载的需要性」· C++ 代码 · 共 46 行

CPP
46
字号
#include <iostream.h>
#include <stdlib.h>
class  Matrix
{
   public:
     Matrix(int r,int c)
       {
          row=r;col=c;
          elem=new double[row*col];
       }
       double &operator()(int x,int y)
         {
            return elem[col*x+y];
         }
      friend Matrix& operator +(Matrix& arr1,Matrix arr2);
      ~Matrix() {delete[] elem;}
   private:
      double *elem;
      int row,col;
};
 Matrix &operator+(Matrix &arr1,Matrix arr2)
   {
      if(arr1.row!=arr2.row||arr1.col!=arr2.col)
       {
          cout<<"error"<<endl;
          exit(-1);
        }
      for(int i=0;i<arr1.row;i++)
      for(int j=0;j<arr1.col;j++)
         arr1(i,j)=arr1(i,j)+arr2(i,j);
      return(arr1);
  }
void main()
{
  Matrix m(2,3),n(2,3),r(2,3);
  for(int i=0;i<2;i++)
    for(int j=0;j<3;j++)
       {m(i,j)=i+5;
       n(i,j)=j+3;};
   for(int k=0;k<2;k++)
    {for(int j=0;j<3;j++)
      cout<<m(k,j)+n(k,j)<<"  ";
    cout<<endl;
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?