Rückgabewert
-
Hey,
ich habe eine Funktion die drei Rückgabewerte besitzt. Diese sieht wie folgt aus:
int XYZ::FunFunction(double &value1, double &value2, double &value3)
an einer Stelle muss ich diese Funktion aufrufen und drei double werte mitgeben.
An einer anderen Stelle muss ich nichts mitgeben.Meine frage nun:
Wie muss ich die Funktion aufrufen ohne Werte mitzugeben?
Wenn ich die Funktion normal aufrufe dann wird diese in QT gelb unterstrichen und ich erhalte eine Fehlermeldung das ich Werte mitgeben MUSS. -
hi @NotYourFan
In deiner Funktionsdefintion , definiere zusätzlich default Parameter
https://en.cppreference.com/w/cpp/language/default_argumentsDann kannst du die Funktion auch aufrufen, ohne Parameter mit zu übergeben zu müssen.
-
Hey,
Danke für die schnelle Antwort :)Heißt für mich einfach ich nach folgendes:
....(Double Value1=0, Double Value2=0, Double Value3=0)
?
-
@NotYourFan
wenn ich das richtig in Erinnerung hab, geht das mit Referenzen als argument nicht so einfach.ich würde empfehlen, pointer zu übergeben
int FunFunction(double *value1 = nullptr, double *value2 = nullptr, double value3= nullptr)
dann kannst in der Funktion selbst gegen nullptr prüfen und entscheiden.
musst dann halt dementsprechend beim Aufruf dereferenzieren.
double a,b,c; int result = FunFunction(&a, &b, &c);
-
@J.Hilk said in Rückgabewert:
wenn ich das richtig in Erinnerung hab, geht das mit Referenzen als argument nicht so einfach.
Ja, das ist richtig ==> Default value to a parameter while passing by reference in C++
Eine Lösung währe:
public class XYZ { static const double defaultValue = 0.0; ... public: int FunFunction(double &value1=defaultValue , double &value2=defaultValue , double &value3=defaultValue ); }