1. ホーム
  2. c++

[解決済み] 変数またはフィールド(関数)がvoid宣言されている

2022-02-12 09:30:11

質問

基本的な行列関数を書いているのですが、診断方法がわからないエラーが発生します。

.h ファイルに関数があります。

void matrixMultiplication (int arr1[][100], int arr2[][100], int a1row, int a2col, int targetArr[][100]);

私の.cppファイルには

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];

しかし、プログラムを実行すると、次のようなエラーが発生します。

In function 'int main()' [Error] variable or field 'matrixMultiplication' declared void

この質問は以前にもあったようですが、その回答は私のプログラムとは全く関係のない文字列に関するもので、その回答をこのケースに拡張する方法がわかりません。

どのように解決するのですか?

という名前の変数を宣言しているとコンパイラは判断します。 matrixMultiplication このパラメータは、指定したパラメータで初期化され、その型は void .
型の変数を作成することはできません。 void .

関数を呼び出すときに戻り値の型を指定してはいけません。 void :

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