设计一个矩阵类。要求矩阵类重载加、减、乘、赋值和加赋值运算符

# include"iostream.h"
class Matrix
{
private:
      int arr[2][2];
public:
      Matrix(int a[2][2]);
      Matrix operator+(Matrix b);
      Matrix operator-(Matrix b);
      Matrix operator*(Matrix b);
      Matrix operator=(Matrix b);
      Matrix operator+=(Matrix b);
      void Show();
};

inline Matrix::Matrix(int a[2][2])
{
     for(int i=0;i<2;i++)
     for(int j=0;j<2;j++)
     arr[i][j]=a[i][j];
}

inline Matrix Matrix::operator+(Matrix b)
{
       int ar[2][2];
       for(int i=0;i<2;i++)
       for(int j=0;j<2;j++)
       ar[i][j]=arr[i][j]+b.arr[i][j];
       return Matrix(ar);
}
 
inline Matrix Matrix::operator-(Matrix b)
   {
   int ar[2][2];
   for(int i=0;i<2;i++)
   for(int j=0;j<2;j++)
   ar[i][j]=arr[i][j]-b.arr[i][j];
   return Matrix(ar);
   }
   
    

inline Matrix Matrix::operator*(Matrix b)
 {
        int ar[2][2];
        int t;
        for(int i=0;i<2;i++)
        for(int j=0;j<2;j++)
               {
                   ar[i][j]=0;
                   for(t=0;t<2;t++)
                   ar[i][j]=ar[i][j]+arr[i][t]*b.arr[t][j];
               }

        return Matrix(ar);
 }

inline Matrix Matrix::operator=(Matrix b)
   {
        int ar[2][2];
        for(int i=0;i<2;i++)
        for(int j=0;j<2;j++)
        this->arr[i][j]=b.arr[i][j];
        return *this;
   }

inline Matrix Matrix::operator+=(Matrix b)

 {
      int i,j;
      for(i = 0;i < 2;i++)
           {
                for(j = 0;j < 2;j++)
                arr[i][j]+=b.arr[i][j]; 
           }
      return *this;

}


inline void Matrix::Show()
 {

        for(int i=0;i<2;i++)
              {
                    for(int j=0;j<2;j++)
                    cout<                     cout<               }
}

 
   void main()
   {
        int ar1[2][2]={{1,2},{3,4}};
        int ar2[2][2]={{2,3},{4,5}};
        int ar3[2][2];
      

       Matrix a1(ar1),a2(ar2),a3(ar3);
       cout<<"a1 is :"<        a1.Show();
       cout<<"a2 is :"<        a2.Show();
       a3=a1+a2;
       cout<<"a3add is :"<        a3.Show();
       a3=a1-a2;
       cout<<"a3sub is :"<        a3.Show();
       a3=a1*a2;
       cout<<"a3mul is :"<        a3.Show();
       a3=a1;
       cout<<"a3fu is :"<        a3.Show();
       a1+=a2;
       cout<<"a1jiad is :"<        a1.Show();
   }

 

  

 

 

你可能感兴趣的:(函数重载)