此頭文件似乎聲明瞭變量user_matrix,但是當我在默認構造函數中使用它時,它看起來沒有聲明。在聲明中聲明的變量未在類範圍中聲明
這是頭文件:
#include<iostream>
#include<cmath>
class matrix{
public:
float** user_matrix;
int n;
matrix(int n1,int initiate);
};
這是我嘗試和使用它的代碼
#include"matrix.h"
using namespace std;
matrix::matrix(int n1,int initiate){
n=n1;
user_matrix=NULL;
}
int main(){
return 0;}
您能否提供我要去的地方錯或點我在正確的方向呢?非常感謝您提供的任何幫助。
edit2:原來,這是導致問題matrix.h.gch的目錄中的這個文件。
編輯:根據要求,這是所有的代碼。
#include<iostream>
#include<cmath>
//using namespace std;
class matrix{
//float** random_mat(int size);
public:
float** user_matrix;
int n;
matrix(int n1,int initiate);
/*~matrix(){int i;if(user_matix!=NULL){for(i=0;i<n;i++){delete[] user_matrix[i];};delete[] user_matrix;};}
matrix multiply(matrix matrix1,matix matrix2);
matrix add(matrix matrix1,matrix matrix2);
matrix inverse();
float** sub_matrix(float** matrix1,int i,int j,int n);
float det();
void display();
void display(matrix matrix1);*/
};
#include"matrix.h"
using namespace std;
matrix::matrix(int n1,int initiate){
n=n1;
user_matrix=NULL;
/*switch(initiate){
case 1 :
int i;
user_matrix=new float* [n1];
for(i=0;i<n1;i++){
user_matrix[i] =new float [n1];}
break;
case 2 :
user_matrix=random_mat(n);
break;
case 3 :
user_matrix=NULL;
}*/
}
int main(){
//matrix m1(1,1);
return 0;}
你有兩個名爲'user-matrix'的變量:'float'和'float **'。 – chrisaycock
這是來自其他測試的延期,這不會導致錯誤。當我沒有它編譯時,我仍然得到相同的錯誤。 – user1750289
你仍然**缺少分號**來終止'class matrix {...}'。那也是你的原始代碼嗎? – chrisaycock