GRRRARD 发表于 2014-11-21 17:18:23

C++析构问题求教

下面是我写的矩阵类里的一个成员函数,目的是消去矩阵里的一行,但是执行的时候发现很奇怪,程序最后在return matSubTemp这行直接跳过去了,没有执行,但是却能输出。而且按理说我将这个结果赋值给一个新的矩阵,中间应该把这个临时矩阵内存释放了,但是调试的时候发现没有析构,这是为什么?大神帮忙解释解释,看了大半天了
Matrix Matrix::MatSubLine(int sub_line)                           //删除sub_line行
{   Matrix matSubTemp(matRow-1,matCol);
    if(sub_line>matRow ||sub_line<1)
    {
      cerr<<"超出矩阵行范围"<<endl;
      exit(0);
    }
    for(int i=sub_line;i<matRow;i++)
    {
      MatSwapLine(i,i+1);                                 //将要删除的行换到矩阵最后一行并丢弃
    }
    for(int i=0;i<matSubTemp.matRow*matSubTemp.matCol;i++)
    {
            matSubTemp.pMatValue=pMatValue;
    }
    return matSubTemp;
}
页: [1]
查看完整版本: C++析构问题求教