【发布时间】:2021-09-08 22:59:39
【问题描述】:
我正在编写一个矩阵处理类来练习该语言。
我的第一个方法是这样的:
template<typename T>
T* matrixClass<T>::CreateMat(unsigned int nRow, unsigned int nCol, T& num)
{
matrixClass::m_nRows = nRow; //number of rows
matrixClass::m_nCol = nCol; //number of columns
matrix = new T[nRow * nCol];//memory allocation
for (unsigned int row = 0; row < nRow; row++) //row selection N x m
{
for (unsigned int col = 0; col < nCol; col++)
{
matrix[col + row * nCol] = num; //assigns data to columns n x M
num += 1.1;
}
}
return matrix;
}
我正在尝试在同一个类中编写一个方法,该方法采用该方法创建的两个矩阵并找到它的行和列。
【问题讨论】:
-
是什么让你停止做你想做的事?问题是什么?
-
将最近创建的矩阵的大小存储在静态变量中不是问题吗?
-
问题是如何在此方法之外访问变量 nRow 和 nCol。如果只创建一个方法,我可以简单地编写一个返回它们的方法,但如果创建了两个,它只返回最新的行和列。
-
正确。你不能,用这种方法。你需要改变它。
-
我建议使用
std::vector而不是new[]。
标签: c++ arrays class matrix methods