siddharth_waikar
2006-01-24 18:03:30 UTC
'int' is a inbuilt class
int i,j,k=i+j;
above statement is works for int class
similarly, I have written my own class 'Matrix'
but my class 'Matrix' is not working.
I gets ERROR for that code.
this is my code
#include<iostream.h>
#include<iomanip.h>
#include<stdlib.h>
class Matrix
{
int *p,m,n;
public :
Matrix(int r=2,int c=2)
{ m=r; n=c;
p = new int [m*n];
for(int i=0,j;i<m;i++)
for(j=0;j<n;*(p+(i*n+j))=0,j++);
}
void accept();
void display();
~Matrix() { delete []p; }
Matrix (Matrix &Tm)
{ m=Tm.m; n=Tm.n;
p=new int [m*n];
for(int i=0,j;i<m;i++)
for(j=0;j<n;j++)
*(p+(i*n+j))=*(Tm.p+(i*n+j)); }
void operator =(Matrix );
Matrix operator +(Matrix &);
};
void Matrix :: accept()
{
cout << "(" << m << "X" << n << "):\n";
for(int i=0,j;i<m;i++)
for(j=0;j<n;j++)
cin >> *(p+(i*n+j));
}
void Matrix :: display()
{
for(int i=0,j;i<m;cout << endl,i++)
for(j=0;j<n;j++)
cout << setw(5) <<*(p+(i*n+j));
}
void Matrix :: operator =(Matrix Tm)
{
for(int i=0,j;i<m;i++)
for(j=0;j<n;j++)
*(p+(i*n+j))=*(Tm.p+(i*n+j));
}
Matrix Matrix :: operator +(Matrix &Tmp)
{
Matrix Tm3(m,n);
if(m==Tmp.m && n==Tmp.n)
{ for(int i=0,j;i<m;i++)
for(j=0;j<n;j++)
*(Tm3.p+(i*n+j))=*(p+(i*n+j))+*(Tmp.p+(i*n+j));
}
else cout << endl <<"Can't ADD!\n";
return Tm3;
}
int main()
{
int m,n;
cout << endl << "Enter Order of matrix A:";
cin >> m >> n;
Matrix A(m,n);
cout << endl << "Enter Order of matrix B:";
cin >> m >> n;
Matrix B(m,n);
cout << endl <<"Enter matrix A";
A.accept();
cout << endl <<"Enter matrix B";
B.accept();
cout << endl <<"Matrix A\n";
A.display();
cout << endl <<"Matrix B\n";
B.display();
Matrix C=A+B;
cout << endl <<"Matrix C(A+B)\n";
C.display();
return 0;
}
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/bcslug/
<*> To unsubscribe from this group, send an email to:
bcslug-***@yahoogroups.com
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
int i,j,k=i+j;
above statement is works for int class
similarly, I have written my own class 'Matrix'
but my class 'Matrix' is not working.
I gets ERROR for that code.
this is my code
#include<iostream.h>
#include<iomanip.h>
#include<stdlib.h>
class Matrix
{
int *p,m,n;
public :
Matrix(int r=2,int c=2)
{ m=r; n=c;
p = new int [m*n];
for(int i=0,j;i<m;i++)
for(j=0;j<n;*(p+(i*n+j))=0,j++);
}
void accept();
void display();
~Matrix() { delete []p; }
Matrix (Matrix &Tm)
{ m=Tm.m; n=Tm.n;
p=new int [m*n];
for(int i=0,j;i<m;i++)
for(j=0;j<n;j++)
*(p+(i*n+j))=*(Tm.p+(i*n+j)); }
void operator =(Matrix );
Matrix operator +(Matrix &);
};
void Matrix :: accept()
{
cout << "(" << m << "X" << n << "):\n";
for(int i=0,j;i<m;i++)
for(j=0;j<n;j++)
cin >> *(p+(i*n+j));
}
void Matrix :: display()
{
for(int i=0,j;i<m;cout << endl,i++)
for(j=0;j<n;j++)
cout << setw(5) <<*(p+(i*n+j));
}
void Matrix :: operator =(Matrix Tm)
{
for(int i=0,j;i<m;i++)
for(j=0;j<n;j++)
*(p+(i*n+j))=*(Tm.p+(i*n+j));
}
Matrix Matrix :: operator +(Matrix &Tmp)
{
Matrix Tm3(m,n);
if(m==Tmp.m && n==Tmp.n)
{ for(int i=0,j;i<m;i++)
for(j=0;j<n;j++)
*(Tm3.p+(i*n+j))=*(p+(i*n+j))+*(Tmp.p+(i*n+j));
}
else cout << endl <<"Can't ADD!\n";
return Tm3;
}
int main()
{
int m,n;
cout << endl << "Enter Order of matrix A:";
cin >> m >> n;
Matrix A(m,n);
cout << endl << "Enter Order of matrix B:";
cin >> m >> n;
Matrix B(m,n);
cout << endl <<"Enter matrix A";
A.accept();
cout << endl <<"Enter matrix B";
B.accept();
cout << endl <<"Matrix A\n";
A.display();
cout << endl <<"Matrix B\n";
B.display();
Matrix C=A+B;
cout << endl <<"Matrix C(A+B)\n";
C.display();
return 0;
}
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/bcslug/
<*> To unsubscribe from this group, send an email to:
bcslug-***@yahoogroups.com
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/