C program to show overloading of matrix operator:
Write a program for matrix operator overloading.
class matrix{
private :
int x[2][2];
public:
void show();
matrix operator + (matrix);
matrix(int a,int b,int c,int d);//consructor
matrix() //default constructor
{
for (int i= 0;i<2;i++)
for(int j=0;j<2;j++)
x[i][j]=0;
}
~matrix()
{
}
};
void matrix ::show()
{
for (int i= 0;i<2;i++)
for(int j=0;j<2;j++)
cout <<"\n"<
}
matrix:: matrix (int a,int b,int c,int d)//constructor definition
{
x[0][0]=a;
x[0][1]=b;
x[1][0]=c;
x[1][1]=d;
}
matrix matrix :: operator +(matrix b)
{
matrix c;
for (int i= 0;i<2;i++)
for(int j=0;j<2;j++)
c.x[i][j]=x[i][j] + b.x[i][j];
return c;
}
void main()
{
matrix a,b,c;
clrscr();
b=a=matrix(1,2,3,4);
c=a+b; //c=a.operator + (b);
//here b is the argument passed to the memeber function
//where a is the invoking object of the operator + function
//whereas in friend function a anb b are treated as
//arguments
c.show();
getch();
}