对象的初始化

来源:百度知道 编辑:UC知道 时间:2024/07/08 22:08:22
#include<iostream.h>
class matrix{
public:
matrix();
friend matrix operator+(matrix x,matrix y);
void display();
private:
int a[2][3];
};

matrix::matrix(){
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
a[i][j]=0;
}
matrix operator+(matrix x,matrix y){
matrix z;
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
z.a[i][j]=x.a[i][j]+y.a[i][j];
return z;
}
void matrix::display(){
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
cout<<a[i][j];
cout<<endl;
}

int main()
{
matrix m1,m2,m3;
m3=m1+m2;
m3.display();
return 0;
}
上面定义了重载运算符+,使他能求两个矩阵之和,在定义对象的时候怎么把对象初始化?
给对象赋新的值?

利用构造函数初始化
class matrix{
public:
matrix();
matrix(int b[2][3]);//加了这个
friend matrix operator+(matrix x,matrix y);
void display();
private:
int a[2][3];
};
matrix::matrix(int b[2][3])//初始化
{
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
a[i][j]=b[i][j];
}

定义时候
就可以
int c[2][3] ={0,9,8,3,5};
matrix m1(c);

定义对象时是直接调对象所在类的构造函数的