-6

このヘッダー ファイルは、変数 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;}
4

2 に答える 2

3

同じ名前の 2 つのデータ メンバーがあるようです:

float** user_matrix;
int n;
float user_matrix;

これは機能しません。

それに加えて、クラス宣言の後にセミコロンがありません:

class matrix{
....
};

// ^ ここに!

于 2012-10-25T14:09:00.807 に答える
1

user_matrix2回宣言されています。何度も何float**度もfloatfloat**は null に設定できますが、aは設定floatできません。float user_matrisコンパイラは、を null に設定することを受け入れませfloatん。これらのいずれかの名前を変更user_matrixすると、問題が解決するはずです。

于 2012-10-25T14:18:55.653 に答える