Funktionspointer und Funktionspointer als Parameter
-
@wob sagte in Funktionspointer und Funktionspointer als Parameter:
@Herr-Black sagte in Funktionspointer und Funktionspointer als Parameter:
Danke,
ich habe den Code in der Eingangsfrage bearbeitet.Ich bin jetzt total verwirrt: ist dein Fehler jetzt behoben?
Ja, nachträglich Beiträge zu editieren verwirrt nur. Außerdem fehlt eine MyArray.h in dem Beitrag. Wenn ich rate, dass deine MyArray.h ungefähr so aussieht, wie deine oben gezeigte Definition der Klasse
MyArray
, dann funktioniert die Übersetzung: https://ideone.com/BqOdCr Das kann also nicht der Code sein, der bei dir den Fehler verursacht, außer der Fehler ist jetzt doch schon behoben. Da ich aber sowohl raten, als auch den Code editieren musste, ist es durchaus möglich, dass ich mir für die fehlenden Teile etwas richtiges ausgedacht habe, wo du einen Fehler hast.
-
Danke für die Mühe!
Der Fehler tritt nicht in der Klasse MyArray auf. Dachte nur, weil die Funktion, die ein Objekt dieser Klasse aufruft, Probleme macht.
//main.h #pragma once #include <iostream> #include "MyArray.h" double f (double x_stelle); MyArray gradient (MyArray x_vektor,double(*f_ptr)(double x_stelle));
In der Zeile 8. tritt der Fehler auf:
Fehler C4430 Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
Fehler C2146 Syntaxfehler: Fehlendes ";" vor Bezeichner "gradient".
Dieser Fehler kommt erst, wenn ich übersetzen möchten. Hier die main.cpp, wo der Rumpf der Funktion definiert wird.
//main.cpp #include "main.h" MyArray gradient(MyArray x_vektor, double(*f_ptr)(double x_stelle)) { double h = 10 ^ (-8); //TODO return x_vektor;
-
Hast du evtl. einen Syntax-Fehler in "MyArray.h" (z.B. kein abschließendes Semikolon nach der schließenden Klammer der Klasse
MyArray
)?Ansonsten zeige mal die gesamte "MyArray.h".
-
Fehler gefunden, es lag an ein #include "MyArray.h" was sehr weit runtergerutscht ist. Somit ist der gute Präprozessor nicht fertig geworden.
Vielen Dank für die Hilfe! Sowas blödes...
-
@Herr-Black sagte in Funktionspointer und Funktionspointer als Parameter:
Fehler gefunden, es lag an ein #include "MyArray.h" was sehr weit runtergerutscht ist. Somit ist der gute Präprozessor nicht fertig geworden.
Vielen Dank für die Hilfe! Sowas blödes...Und genau darum haben wir nach einem vollständigem Minimalbeispiel gefragt. Das hätten wir sofort gesehen.
-
@Herr-Black sagte in Funktionspointer und Funktionspointer als Parameter:
double h = 10 ^ (-8);
Das macht übrigens nicht was du denkst. '^' bedeutet xor und nicht Potenz.
-
@Jockelx ja:D habe ich schon gemerkt :-), 10e-8 ist der richtig Ausdruck