m5 = m2 * m3;
cout << "m2 * m3 is : " << endl<< m5 << endl;
같은 것입니다 이것은
const Matrix Matrix::operator*(const Matrix &a)
{
Matrix temp(a.row,a.col);
for (int i = 0; i<row; i++)
{
for (int j = 0; j<col; j++)
{
for (int k = 0; k<a.row; k++)
{
temp.data[i][j] = temp.data[i][j] + data[i][k] * a.data[k][j];
}
}
}
return temp;
}
그러나 내 코드입니다 함수
ostream& operator<<(ostream &output, const Matrix &a)
{
for (int i = 0; i < a.row; i++)
{
for (int j = 0; j < a.col; j++)
{
output << a.data[i][j] << "\t";
}
output << "" << endl;
}
return output;
}
가 a.data에 문제가있을 것 같다 [I] [J] 난 그나마되는 케이 이제 문제가 무엇입니까 잘 작동합니다. 이 오류를 보여주고있다 {data0x005fba90 {0xfeeefeee가 {???}} 이 사람이 어떤 조언이나 제안을하거나 상황 에 도움이 될 수 있습니다이이이 설정
Matrix::Matrix(const Matrix&m2)
{
row = m2.row;
col = m2.col;
setUp(row, col);
for (int i = 0; i<row; i++)
{
for (int j = 0; j<col; j++)
{
data[i][j] = 0;
}
}
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
data[i][j] = m2.data[i][j];
}
}
}
내 복사 생성자이며 기본적
Matrix::Matrix()
{
row =0;
col = 0;
for (int i = 0; i<row; i++)
{
for (int j = 0; j<col; j++)
{
data[i][j] = 0;
}
}
}
Matrix::Matrix(int a, int b, double d[], int c)
{
row = a;
col = b;
setUp(row, col);
int counter = 0;
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
data[i][j] = d[counter];
counter++;
}
}
}
하고 Matrix
생성자를 보지 않고 셋업
void Matrix::setUp(int a, int b)
{
row = a;
col = b;
data = new double*[row];
for (int i = 0; i < row; i++) data[i] = new double[col];
}
* 그러나 내 인쇄 기능에 항상 오류가 있습니다. * 자세히 설명해 주시겠습니까? – NathanOliver
임시 행렬에'this-> row'와'a.col' 차원이 있어야하지 않습니까? –
하지만 내가 어떤 연산자를 사용하지 않고 작동하지 않으면 연산자를 사용하는 것과 다른 것입니다. –