变量或字段(函数)声明为void

时间:2015-11-26 07:14:59

标签: c++ matrix compiler-errors

我正在编写一些基本的矩阵函数,并且我得到一个错误,我无法弄清楚如何诊断。

我的.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];

我看到之前已经问过这个问题,但答案与字符串有关,这与我的程序无关,我无法弄清楚如何将答案扩展到这种情况。

2 个答案:

答案 0 :(得分:1)

请尝试从下面的行中删除void并重新编译。它应该解决问题。

void matrixMultiplication (matrix1, matrix2, rowOfMatrix1, columnOfMatrix2, finalMatrix);

在调用函数时,不应该给出返回类型。这就是编译器抱怨的原因。

答案 1 :(得分:1)

编译器认为您正在声明一个名为matrixMultiplication的变量,该变量使用您提供的参数进行初始化,其类型为void
您无法创建void类型的变量。

调用函数时不应指定返回类型,因此请删除void

matrixMultiplication (matrix1, matrix2, rowOfMatrix1, columnOfMatrix2, finalMatrix);