一个关于c++用含有二维指针的类编写矩阵相乘和转置的编程问题

要求:设计一个矩阵类Matrix(矩阵由二维数组实现),有分配空间和对矩阵赋值的功能。练习将这个矩阵类的对象作为参数传送到函数Mul(),用普通,指针和引用三种方法实现,... 要求:
设计一个矩阵类Matrix(矩阵由二维数组实现),有分配空间和对矩阵赋值的功能。
练习将这个矩阵类的对象作为参数传送到函数Mul(),用普通,指针和引用三种方法实现,并要注意这三种方式的区别。
直接传送:Mul(Matrix a,Matrix b)。实际上只是传送值,在函数中针对对象的任何修改均不影响该对象本身。
指针传送:Mul(Matrix *pa,Matrix *pb)。要注意指针的级数。
引用传送:Mul(Matrix &a,Matrix &b)这种调用将影响参数的实际值。
将Mul函数实现:完成对传送的两个Martix对象的相乘运算。下面给出矩阵相乘的算法:
矩阵a[I][j]与矩阵b[x][y]相乘,条件是j==x。
乘积是一个新的矩阵c[I][j],其中c[I][j]的值是
∑(a[I][k]*b[k][y])
其中k=0,1,2,……,j。
在Matrix类中定义一个静态数据成员,记录当前所有Matrix对象的数量。
定义一个友元函数实现转制功能。转制是指将数组中a[i][j]与a[j][i]的值对调。
步骤:
建立一个工程。在工程中定义一个Matrix类,在构造函数中根据参数创建数据成员:一个二维数组。提示:用构造函数记录二维数组的大小(unsigned int x, unsigned int y)。类中实际定义的二维数组的数据成员是一个指针(二级指针),int**pMatrix。在构造函数中根据传送的参数为这个二维数组分配空间:pMatrix=new int[x][y]。
设计成员函数,完成对数组的赋值的功能。本例中定义的成员函数为SetValue(unsigned int x, unsigned int y,int value)。
参考以上的说明,以常用三种方式实现向Mul()函数传递参数,并返回函数相乘的结果。
在类中定义一个静态数据成ObjectAliveNo,记录当前共有几个Matrix类的对象。实现方法:可以在对象的构造函数中向该数据成员报告(使静态数据成员加1);在析构函数中也向该数据成员报告(使静态数据成员减1)。并要注意,在程序开始时,给这个静态数据成员赋初值。
在Matrix类中定义一个友元函数,使其具有对Matrix类的对象内的数组进行转制功能。
展开
 我来答
失忆的浪漫
2011-11-11
知道答主
回答量:13
采纳率:0%
帮助的人:7.4万
展开全部
刘老师说不给我们程序,还要上传·········怎么办???
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式