函数模板返回不完整的值

时间:2013-12-02 17:47:21

标签: c++ templates matrix

这段代码可能有什么问题?

template< typename Tp, const uInt N>
Matrix<Tp,N-1,N-1> minorMatrix_IJ(const Matrix<Tp, N, N>& A, uInt Ith_row, uInt Jth_col)
{
    assert(N > 1);

    Matrix<Tp, N-1,N-1> temp;
    uInt k = 0, m = 0;

    for(uInt i = 0; i < N; i++, k++)
    {
        if(i == Ith_row)
        { 
                if(k > 0) k--;

                continue;
        }

        for(uInt j = 0; j < N; j++, m++)
        {
            if(j == Jth_col)
            { 
                if(m > 0) m--;

                continue;
            }
            temp[k][m] = A[i][j];
            std::cout <<"temp: " << temp[k][m] <<"\n";
        }
    }
    return temp;
}

在函数temp的值内正确分配,但返回的值会以某种方式错误的值。 (Matrix只是一个带有2d数组[行] [cols]的模板类)谢谢

1 个答案:

答案 0 :(得分:0)

我怀疑你的Matrix类表现不正常。也许是复制构造函数。