定义一个二维方阵类 matrix。通过重载二元运算符“+”、“-”、“*”和一元运算
符“~”, 来实现矩阵加、矩阵减、矩阵乘以及矩阵转置。
【实验目的】
以类成员方式(或友元方式)在自定义的方阵类 matrix 中重载二元运
算符“+”、“-”、
“
*”
和一元运算符“
~”
,用来实现规定的矩阵运算。
【要点提示】
1. 首先假定矩阵行列数 r 和 c 为固定常数,且被处理的矩阵数据存放于
matrix 类的私 有数据成员 mem 数组之中,并以类成员方式重载各运算符。
可按照如下样式来自定义该 matrix 类。
const int r=3; const int
c=3; class matrix {
int mem[r][c]; //
矩阵之
r
行
c
列的数据存放于
mem
数组中
public:
matrix(int a[r][c]);//1
参构造函数,将参数
a
所带来的矩阵数据置于
mem
数组中
matrix(); //
无参构造函数,将
mem
数组各元素置为
0
matrix operator+ (matrix &); //矩阵加
matrix operator- (matrix &); //矩阵减
matrix operator* (matrix &); //矩阵乘
matrix operator~ (); //矩阵转置
void display(); //输出矩阵
};
2.
编制类似于如下形式的主函数,对
matrix
类对象及各种重载运算符
进行使用,以验证它们的正确性。
void main(){
int a[3][3]={1,2,3,4,5,6,7,8,9};
int b[3][3]={1,2,3, 0,1,2, -1,0,1};
matrix x(a), y(b);
cout<<"-------- x= ------------"<<endl;
x.display(); //按设定格式显示出第一个矩阵 x
cout<<"-------- y= ------------"<<endl;
y.display() //按设定格式显示出第二个矩阵 y
cout<<"--------- x+y= ---------"<<endl;