#include <iostream>
using namespace std;
const int M = 2 ;
const int N = 2 ;
class MatrixAdd
{
private :
int a[ M] [ N] ;
public :
MatrixAdd ( ) { }
MatrixAdd ( int x[ M] [ N] )
{
int i, j;
for ( i = 0 ; i < M; i ++ )
for ( j = 0 ; j < N; j ++ )
a[ i] [ j] = x[ i] [ j] ;
}
MatrixAdd operator + ( MatrixAdd & b)
{
MatrixAdd t;
int i, j;
for ( i = 0 ; i < M; i ++ )
for ( j = 0 ; j < N; j ++ )
t. a[ i] [ j] = a[ i] [ j] + b. a[ i] [ j] ;
return t;
}
MatrixAdd operator - ( MatrixAdd & b)
{
MatrixAdd t;
int i, j;
for ( i = 0 ; i < M; i ++ )
for ( j = 0 ; j < N; j ++ )
t. a[ i] [ j] = a[ i] [ j] - b. a[ i] [ j] ;
return t;
}
MatrixAdd operator * ( MatrixAdd & b)
{
MatrixAdd t;
int a[ M] [ N] = { { 1 , 2 } , { 4 , 5 } } ;
int i, j, k;
for ( i = 0 ; i < 2 ; i++ )
for ( j = 0 ; j < 2 ; j++ )
{
t. a[ i] [ j] = 0 ;
for ( k = 0 ; k< 2 ; k++ )
t. a[ i] [ j] + = a[ i] [ k] * b. a[ k] [ j] ; }
return t;
}
void show ( )
{
int i, j;
for ( i = 0 ; i < M; i ++ )
{
for ( j = 0 ; j < N; j ++ )
cout << a[ i] [ j] << '\t' ;
cout << endl;
} } } ;
int main ( )
{
int a[ M] [ N] = { { 1 , 2 } , { 4 , 5 } } ;
int b[ M] [ N] = { { 2 , 2 } , { 3 , 1 } } ;
int i, j;
MatrixAdd A ( a) , B ( b) , C;
C = ( A + B) ;
cout<< "加:" << endl;
C. show ( ) ;
C = ( A - B) ;
cout<< "减:" << endl;
C. show ( ) ;
C = ( A * B) ;
cout<< "乘:" << endl;
C. show ( ) ;
return 0 ;
}