Ce fichier d'en-tête semble déclarer la variable user_matrix mais lorsque je l'utilise dans le constructeur par défaut, il ne semble pas être déclaré.Variable déclarée dans l'en-tête non déclarée dans la portée de la classe
C'est le fichier d'en-tête.
#include<iostream>
#include<cmath>
class matrix{
public:
float** user_matrix;
int n;
matrix(int n1,int initiate);
};
Voici le code que j'essaie de l'utiliser dans
#include"matrix.h"
using namespace std;
matrix::matrix(int n1,int initiate){
n=n1;
user_matrix=NULL;
}
int main(){
return 0;}
Pouvez-vous suggérer où je me trompe ou me diriger dans le droit direction pour cela? Merci beaucoup pour toute aide apportée. Edit2: Il s'avère que c'était ce fichier dans le répertoire à l'origine du problème matrix.h.gch.
edit: Comme demandé c'est tout le code.
#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;}
Vous avez deux variables nommées 'user-matrix': a' float' et 'float **'. – chrisaycock
Il s'agissait d'un report d'un autre test, cela ne provoque pas l'erreur. Quand je compile sans cela, j'ai toujours la même erreur. – user1750289
Il vous manque toujours ** le point-virgule ** pour terminer la classe class {...} '. Est-ce que c'est aussi dans ton code original? – chrisaycock