Hallo,
ich habe mir gerade die Funktion qsort aus cstdlib angeschaut. Beim Schreiben einer eigenen Funktion, die einen Zeiger auf eine Funktion als Parameter erwartet, ist mir folgendes aufgefallen (ich habe die Definition von sqort als Vorlage benutzt).
Auf den beiden Seiten, die ich tzum Nachschlagen nutze, sieht die Definition unterschiedlich aus:
std::qsort - cppreference.com
qsort - C++ Reference
Ich habe erst die Deklaration der Seite cppreference benutzt und mein Programm kompilierte nicht.

Wo ist mein Fehler, wenn ich die Methodendeklaration so wie auf der Seite cppreference.com schreibe? Deren Code wird ja richtig sein.
Viele grüße
schiese
ich habe mir gerade die Funktion qsort aus cstdlib angeschaut. Beim Schreiben einer eigenen Funktion, die einen Zeiger auf eine Funktion als Parameter erwartet, ist mir folgendes aufgefallen (ich habe die Definition von sqort als Vorlage benutzt).
Auf den beiden Seiten, die ich tzum Nachschlagen nutze, sieht die Definition unterschiedlich aus:
std::qsort - cppreference.com
qsort - C++ Reference
Ich habe erst die Deklaration der Seite cppreference benutzt und mein Programm kompilierte nicht.

C++:
#include <iostream>
int add10(int summand) {
int wert = 10 + summand;
return wert;
}
int func(int zahl, int(int)* f) { // Fehler. So würde ich es laut der Deklaration von cppreference.com deuten
return (*f)(zahl);
}
int main() {
int zahl = 12;
std::cout << func(zahl, add10);
}
C++:
#include <iostream>
int add10(int summand) {
int wert = 10 + summand;
return wert;
}
int func(int zahl, int(*f)(int)) {
return (*f)(zahl);
}
int main() {
int zahl = 12;
std::cout << func(zahl, add10);
}
Wo ist mein Fehler, wenn ich die Methodendeklaration so wie auf der Seite cppreference.com schreibe? Deren Code wird ja richtig sein.
Viele grüße
schiese