我正在编写一些基本的矩阵函数,并且我得到一个错误,我无法弄清楚如何诊断。
我的.h文件中有一个函数:
WP_Query
在我的.cpp文件中,我有:
void matrixMultiplication (int arr1[][100], int arr2[][100], int a1row, int a2col, int targetArr[][100]);
定义为
void matrixMultiplication (matrix1, matrix2, rowOfMatrix1, columnOfMatrix2, finalMatrix);
这里宣布一切:
void matrixMultiplication (int arr1[][100], int arr2[][100], int a1row, int a2col, int targetArr[][100]) {
for (int a = 0; a < a1row; a++) {
for (int b = 0; b < a2col; b++) {
for (int c = 0; c < a2col; c++) {
targetArr[a][b] += arr1[a][c]*arr2[c][b];
}
}
}
}
但是,当我运行程序时,我收到以下错误:
//designates the sizes of both matrices
int rowOfMatrix1 = 0;
int columnOfMatrix1 = 0;
// size of matrix 1 = rowOfMatrix1 x columnOfMatrix1
int rowOfMatrix2 = 0;
int columnOfMatrix2= 0;
// size of matrix 2 = rowOfMatrix2 x columnOfMatrix2
//arrays that hold the values of the integers in the matrices
int matrix1 [100][100];
int matrix2 [100][100];
int finalMatrix [100][100];
我看到之前已经问过这个问题,但答案与字符串有关,这与我的程序无关,我无法弄清楚如何将答案扩展到这种情况。
答案 0 :(得分:1)
请尝试从下面的行中删除void
并重新编译。它应该解决问题。
void matrixMultiplication (matrix1, matrix2, rowOfMatrix1, columnOfMatrix2, finalMatrix);
在调用函数时,不应该给出返回类型。这就是编译器抱怨的原因。
答案 1 :(得分:1)
编译器认为您正在声明一个名为matrixMultiplication
的变量,该变量使用您提供的参数进行初始化,其类型为void
。
您无法创建void
类型的变量。
调用函数时不应指定返回类型,因此请删除void
:
matrixMultiplication (matrix1, matrix2, rowOfMatrix1, columnOfMatrix2, finalMatrix);