背景
老师布置了一个矩阵相关的编程题,涉及到增广矩阵的操作
问题
涉及到深拷贝,我好长时间没写相关函数居然忘了。
解决
如果单纯RMatrix tem(rw,rc+1)
的话是浅拷贝,是不行的
需要RMatrix* tem=new RMatrix(rw,rc+1);
void RMatrix::AugumentMatrix() {
RMatrix* tem=new RMatrix(rw,rc+1);//就是这里的起源
for (int i = 0; i < rw; ++i) {
for (int j = 0; j < rc; ++j) {
tem->SetElem(i, j, GetElem(i, j));
}
}
for (int i=0; i < rw; ++i) tem->SetElem(i, rc, 0);
delete[] elmSet;
elmSet = tem->elmSet;
rw = tem->rw;
rc = tem->rc;
}