このメソッド (Matrix::WriteToArray(double &CopyOfArray)) を使用して、Matrix オブジェクト内の配列のコピーを double の配列 (つまり CopyOfArray) に書き込みます。私はコンパイルに問題があります。
どんな助けでも大歓迎です。ありがとう
エラー:
$ make
g++ -g -Wall -c main.cpp
main.cpp: In function ‘int mrstart(double, double*, Matrix&, Matrix&)’:
main.cpp:459:13: error: ‘cff’ declared as reference but not initialized
main.cpp:465:45: error: invalid type argument of unary ‘*’
main.cpp:467:73: error: invalid type argument of unary ‘*’
main.cpp:470:77: error: invalid type argument of unary ‘*’
Makefile:20: recipe for target `main.o' failed
make: *** [main.o] Error 1
サポート ファイルは次のとおりです。 Main.cpp
int mrstart(double hcen, double mr[], Matrix &a, Matrix &HT)
{
double *cff;
a.WriteToArray(&cff);
/*...*/
}
マトリックス.cc
int Matrix::WriteToArray(double &CopyOfArray){
int i;
for(i=0;i<n_rows;i++){
CopyOfArray[i]=array[i*n_cols];
i++;
}
return *CopyOfArray;
}
マトリックス.hh
#ifndef MATRIX_H
#define MATRIX_H
// Matrix class of variable size
class Matrix {
private:
int n_rows;
int n_cols;
double *array;
public:
// Constructors
Matrix(); // default constructor
Matrix(int rows, int cols); // two-argument constructor
// Matrix(const Matrix &arr); // copy constructor
// Destructor
~Matrix();
// Mutators
// void add(Matrix m2);
// void subtract(Matrix m2);
void setelem(int r, int c, double val);
// Accessors
// void add(Matrix m2);
// void subtract(Matrix m2);
int getrows();
int getcols();
double getelem(int r, int c);
bool equals(Matrix m2);
char display();
int WriteToArray(double &CopyOfArray);
};
#endif