Unklare Compilerfehlermeldung
-
Ich habe folgenden Code geschrieben:
class Fourier { public: int d; double* combinations; int combinationsLength; ... void generateHyperbolicX(); void generateCombinations( double* combinations, int &index, double* ks, int k, int depthIndex, double prod );Und das ist die Implementation:
void Fourier::generateHyperbolicX() { ... combinations = new double[d*combinationsLength]; double* ks = new double[d]; for( int k = -K; k < K; ++k ) { ks[0] = k; generateCombinations( combinations, 0 /*index*/, ks, k, 0 /*depthIndex*/, 1.0 /*prod*/ ); } } void Fourier::generateCombinations( double* combinations, int &index, double* ks, int k, int depthIndex, double prod ) { ... }Wenn ich das kompiliere, erhalte ich folgende Fehlermeldung:
Fourier.cpp: In member function ‘void Fourier::generateHyperbolicX()’:
Fourier.cpp:139:90: error: no matching function for call to ‘Fourier::generateCombinations(double*&, int, double*&, int&, int, double)’
Fourier.h:55:7: note: candidate is: void Fourier::generateCombinations(double*, int&, double*, int, int, double)
make: *** [KRR.o] Error 1Ich nix verstehen, weil für misch sieht rischtisch aus.
-
Der zweite Parameter der Funktion ist eine Referenz, das heißt ein Verweis auf eine existierende Variable. Dort mußt du eine Variable angeben, kein Literal (Konstante).
(alternativ änderst du die Definition des Parameters zuint index- hängt ganz davon ab, was du mit dem PArameter machen willst)
-
Der zweite Parameter von
generateCombinationssollte entwederint indexoderconst int& indexsein. Desweiteren würde ich das Array durch einenstd::vectorersetzten.
-
Danke für die schnelle Antworten.
