![]() |
#2
lucky5635912012-05-02 12:47
|

#include<iostream.h>
class MAT
{
float **p;
int row;
int cloum;
public:
MAT(){}
MAT(int r,int c)
{
row=r;
cloum=c;
p=new float *[row];
for(int i=0;i<row;i++)
{
p[i]=new float [cloum];
}
}
void getdata();
void display();
void operator-();
friend MAT operator+(MAT,MAT);
friend MAT operator*(int ,MAT &);
};
void MAT::getdata()
{
for(int i=0;i<row;i++)
for(int j=0;j<cloum;j++)
cin>>*((*p+i)+j);
}
void MAT::display()
{
for(int i=0;i<row;i++)
{
for(int j=0;j<cloum;j++)
cout<<*((*p+i)+j)<<" ";
cout<<endl;
}
cout<<endl;
}
MAT operator+(MAT s1,MAT s2)
{
MAT k(s1.row,s1.cloum);
for(int i=0;i<k.row;i++)
{
for(int j=0;j<k.cloum;j++)
k.p[i][j]=s1.p[i][j]+s2.p[i][j];
}
return(k);
}
void MAT:: operator-()
{
for(int i=0;i<row;i++)
{
for(int j=0;j<cloum;j++)
p[i][j]=-p[i][j];
}
}
MAT operator*(int a,MAT & s)
{
MAT k(s.row,s.cloum);
for(int i=0;i<k.row;i++)
{
for(int j=0;j<k.cloum;j++)
k.p[i][j]=a*s.p[i][j];
}
return(k);
}
int main()
{
const int n=3;
MAT t1(n,n),t2(n,n);
cout<<"enter two "<<n<<"*"<<n<<" arrays:\n";
t1.getdata();
t2.getdata();
MAT t3,t4;
-t2;
t3=t1+t2;
t4=2*t1;
t2.display();
t3.display();
t4.display ();
return 0;
}
就是运行的时候打印出来的有类似地址值的东西 class MAT
{
float **p;
int row;
int cloum;
public:
MAT(){}
MAT(int r,int c)
{
row=r;
cloum=c;
p=new float *[row];
for(int i=0;i<row;i++)
{
p[i]=new float [cloum];
}
}
void getdata();
void display();
void operator-();
friend MAT operator+(MAT,MAT);
friend MAT operator*(int ,MAT &);
};
void MAT::getdata()
{
for(int i=0;i<row;i++)
for(int j=0;j<cloum;j++)
cin>>*((*p+i)+j);
}
void MAT::display()
{
for(int i=0;i<row;i++)
{
for(int j=0;j<cloum;j++)
cout<<*((*p+i)+j)<<" ";
cout<<endl;
}
cout<<endl;
}
MAT operator+(MAT s1,MAT s2)
{
MAT k(s1.row,s1.cloum);
for(int i=0;i<k.row;i++)
{
for(int j=0;j<k.cloum;j++)
k.p[i][j]=s1.p[i][j]+s2.p[i][j];
}
return(k);
}
void MAT:: operator-()
{
for(int i=0;i<row;i++)
{
for(int j=0;j<cloum;j++)
p[i][j]=-p[i][j];
}
}
MAT operator*(int a,MAT & s)
{
MAT k(s.row,s.cloum);
for(int i=0;i<k.row;i++)
{
for(int j=0;j<k.cloum;j++)
k.p[i][j]=a*s.p[i][j];
}
return(k);
}
int main()
{
const int n=3;
MAT t1(n,n),t2(n,n);
cout<<"enter two "<<n<<"*"<<n<<" arrays:\n";
t1.getdata();
t2.getdata();
MAT t3,t4;
-t2;
t3=t1+t2;
t4=2*t1;
t2.display();
t3.display();
t4.display ();
return 0;
}