找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 1296|回复: 0

求助,多谢指点!

[复制链接]
发表于 2009-11-4 01:13:16 | 显示全部楼层 |阅读模式 IP:江苏扬州
问题:类中含有指针,在对象的复制与赋值时存在问题,如何解决,多谢指点!
//实现矩阵的乘法
#include<iostream.h>
#include<math.h>
class matrix
{public:
friend istream& operator >>(istream&, matrix&);
friend ostream& operator <<(ostream&, matrix&);
friend matrix operator *(matrix&, matrix&);
private:
    int m,n;
int **array;
};
//矩阵的输入
istream& operator >>(istream& input, matrix& mx)
{cout <<"input the no. of rows:";
cin>>mx.m;
cout <<"input the no. of columns:";
cin>>mx.n;
cout<<"this matrix has "<<mx.m<<" rows "<<"and "<<mx.n<<" columns."<<endl;
cout<<"please input matrix elements according to rows:"<<endl;
if((mx.array=new int*[mx.m])==NULL)
cout<<"failure to creat room.";
for(int count=0;count < mx.m;count++)
mx.array[count]=new int[mx.n];
for(int r=0;r<mx.m;r++)
for(int c=0;c<mx.n;c++)
input>>mx.array[r][c];
return input;
}
//矩阵的输出
ostream& operator <<(ostream& output, matrix& mx)
{for(int r=0;r<mx.m;r++)
{cout<<endl;
for(int c=0;c<mx.n;c++)
output<<mx.array[r][c];
}
return output;
}
//矩阵相乘
matrix operator *(matrix& mx1, matrix& mx2)
{matrix temp;
temp.m=mx1.m;
temp.n=mx2.n;
if((temp.array=new int*[mx1.m])==NULL)
cout<<"failure to creat room.";
for(int count=0;count < mx1.m;count++)
temp.array[count]=new int[mx2.n];
if(mx1.n!=mx2.m)
cout<<"two matrixes cannot multiply!";
else
for(int i=0;i<mx1.m;i++)
for(int j=0;j<mx2.n;j++)
for(int t=0;t<mx1.n;t++)
temp.array[i][j]+=mx1.array[i][t]*mx2.array[t][j];
return temp;
}

int main()
{matrix mx1,mx2,mx3;
cin>>mx1>>mx2;
mx3=mx1*mx2;
cout<<"the rezult of two matrix multiply:";
cout<<mx3<<endl;
return 0;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-10-1 01:22 , Processed in 0.189299 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表