Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 标头中声明的变量未在类范围中声明_C++_Oop_Class_Scope - Fatal编程技术网

C++ 标头中声明的变量未在类范围中声明

C++ 标头中声明的变量未在类范围中声明,c++,oop,class,scope,C++,Oop,Class,Scope,这个头文件似乎声明了变量user_matrix,但当我在默认构造函数中使用它时,它似乎没有声明 这是头文件: #include<iostream> #include<cmath> class matrix{ public: float** user_matrix; int n; matrix(int n1,int initiate); }; 你能告诉我哪里出了问题,或者给我指出正确的方向吗?非常感谢您提供的任何帮助 edit2:原来是目录中的这个文

这个头文件似乎声明了变量user_matrix,但当我在默认构造函数中使用它时,它似乎没有声明

这是头文件:

#include<iostream>
#include<cmath>

class matrix{
 public:

  float** user_matrix;
  int n;

  matrix(int n1,int initiate);

};
你能告诉我哪里出了问题,或者给我指出正确的方向吗?非常感谢您提供的任何帮助

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);*/


    };

您似乎有两个同名的数据成员:

float** user_matrix;
int n;
float user_matrix;
这是行不通的

除此之外,类声明后还缺少分号:

class matrix{
....
};

//^这里

用户_矩阵声明两次。一次作为浮动**,一次作为浮动。浮点数**可以设置为空,但浮点数不能设置为空。编译器不接受您将float user_matris设置为null,因为它是一个float,因此不可为null。重命名其中一个user_矩阵,您应该可以看到问题消失了

您有两个名为user matrix的变量:一个float和一个float**。这是其他测试的延迟,不会导致错误。当我编译时没有它,我仍然得到同样的错误。你仍然缺少终止类矩阵{…}的分号。在你的原始代码中也是这样吗?我在你发布的代码中没有看到任何默认构造函数。哪一行给了你错误?错误消息是什么?@user1750289:您发布的代码在g++4.6中不会产生此错误。发布真实代码。您发布的构造函数不是默认的。这是其他测试的延迟,不会导致错误。
float** user_matrix;
int n;
float user_matrix;
class matrix{
....
};