C++ 标头中声明的变量未在类范围中声明
这个头文件似乎声明了变量user_matrix,但当我在默认构造函数中使用它时,它似乎没有声明 这是头文件: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:原来是目录中的这个文
#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{
....
};