永发信息网

c++赋值运算符重载

答案:1  悬赏:0  手机版
解决时间 2021-07-31 16:18

class Matrix
{
public:
Matrix(int **d=NULL,int N=0); //构造函数
Matrix(const Matrix &m); //复制构造函数
~Matrix(); //析构函数

Matrix operator+(const Matrix &m); //重载运算符+

void Display(); //演示矩阵
private:
int i,j; //矩阵横纵坐标
int n; //矩阵维数
int **date; //矩阵数据
};

Matrix::Matrix(int **d,int N) //构造函数
{
n=N;
date=new int*[n];
for(i=0;i<n;i++)
{
date[i]=new int[n];
for(j=0;j<n;j++)
date[i][j]=d[i][j];
}
}

Matrix::Matrix(const Matrix &m) //复制构造函数
{
n=m.n;
date=new int*[n];
for(i=0;i<n;i++)
{
date[i]=new int[n];
for(j=0;j<n;j++)
date[i][j]=m.date[i][j];
}
}

Matrix::~Matrix() //析构函数
{
for(int i=0;i<n;i++)
delete date[i];
delete date;
}

Matrix Matrix::operator + (const Matrix &m) //重载运算符+
{
int n,**d;
n=m.n;
d=new int*[n];
for(i=0;i<n;i++)
{
d[i]=new int[n];
for(j=0;j<n;j++)
d[i][j]=date[i][j]+m.date[i][j];
}
Matrix matrix(d,n);
return matrix;
}

void Matrix::Display() //演示矩阵
{
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cout<<date[i][j]<<'\t';
}
cout<<endl;
}

求:重载赋值运算符的声明和实现。

最佳答案
声明:
Matrix& operator = (const Matrix&);

定义:
Matrix& operator = (const Matrix& rhs)
{
if(&rhis == this) return *this; // 检测自赋值
if(!this.date) { // 释放原占用内存
for(int k = 0; k < n; ++k) delete [] date[k];
delete [] date;
}
date = 0; n = rhs.n; i = rhs.i; j = rhs.j; // 初始化数据
if(!rhs.date) return *this;
date = new int*[n];
for(int p = 0; p < n; ++p) {
date[p] = new int[n];
for(int q = 0; q < n; ++q)
date[p][q] = rhs.date[p][q];
}
return *this;
}


另外建议你在几个构造函数里加入初始化date和n的代码,否则operator = 里检测date是否为空的操作有可能失效。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为什么苦都给能吃苦的人吃,不能吃苦的人,还
关于离婚问题求救!
还有问题想请教@@
常州火车站有三星的宾馆么? 或者其他安静舒
PS CS2 9.0 ~~如何把几张JPEG的图连接在一起
远安县宜昌正宗福建沙县特色小吃这个地址怎么
she often goes
拍结婚照需要什么要求吗?
手机宠儿能送衣服、礼物给别人吗?
没有信心怎么办
关于晓的诗句,求一首里带晓和会字的诗词
“你好”怎么拼?
石鼓区衡阳岳隆电器水暖器材行地址在什么地方
川字中间一横那是什么字
规格大小英语怎么说,规格 用英语怎么说啊
推荐资讯
肾结石的人生活中的钦食应注意什么?
憎水玻璃怎样形成
“花儿谢了明年还是一样的开”是哪一首歌的歌
我琴晚梦见有两条蟒蛇向我爬来,系一公一母的
2009.11.11 一个人如何快乐的过?
浚县鹤壁酷我手机美容这个地址怎么能查询到,
关于工商银行卡的转帐问题!
拜泉县齐齐哈尔天华以诺美发怎么去啊,谁知道
怎样让自己不感到没有安全感?
一个健康的早餐,大家给点意见。
谁能找到横山菁儿 作曲的清秋歌曲?
早饭吃什么能够暖胃?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?