Optionale parameterübergabe
-
Gibt es eine explizite Deklaration für eine optionale parameterübergabe?
Pointer respektive array übergabe ist mir bekannt.
Seid gegrüßt.
-
Einen optionalen Parameter musst du bei der Deklaration mit einem Standard-Wert versorgen (nicht bei der Implementation!).
int myFunc(int paraA,char paraB,double paraC=1.0); int myFunc(int paraA,char paraB,double paraC) { //... }
Variable Parameteranzahl gibt's auch, aber das ist ein anderes Thema...
EDIT: Der optionale Parameter muss natürlich am Ende der Liste stehen.
-
Also ich denke mal du willst ein Objekt oder eine Variable,
an eine Funktion weitergeben und nicht Kopieren, damit er genau auf die Variablen aus dem Programm zugreift musst du/kannst du folgendes schreiben:include <iostream> using namespace std; void funktion(int& ErstesInt, int& ZweitesInt, int& NeuerInt); // Prototyp dekladieren. // Mit dem &(Referenz Operator) kann man den Compiler miteilen, das er direkt // auf die objekte zugreifen soll. int main() { // Variablen die übergeben werden sollen. int A; int B; // Variable in die geschrieben wird. int C; funktion(A,B,C); cout << C << endl; } void funktion(int& ErstesInt, int& ZweitesInt, int& NeuerInt) // Definition { NeuerInt = ErstesInt + ZweitesInt; }
Da kann void verwendet werden, weil er nichts zurückgeben muss.
Ohne Referenzen würde das so ausehen. Hier werden die Variablen nicht gegeben sondern temporär kopiert.include <iostream> using namespace std; int funktion(int ErstesInt, int ZweitesInt); // Prototyp dekladieren. // Hier wird nur Kopiert anstat Referenziert. int main() { // Variablen die übergeben werden sollen. int A; int B; // Variable in die geschrieben wird. int C = funktion(A,B); cout << C << endl; } int funktion(int ErstesInt, int ZweitesInt) // Definition { int NeuerInt = ErstesInt + ZweitesInt; return NeuerInt; }
Hoffe ich konnte weiter helfen^^
-
Hmm, also einer von uns hat irgendwie am Thema vorbeigeschrieben...
-
Jo danke euch beiden,
_matze: das ist genau was ich gesucht habe
seid gegrüßt
-
_matze schrieb:
Hmm, also einer von uns hat irgendwie am Thema vorbeigeschrieben...
Ich habe das so, wie du verstanden.
Zusätzlich gibt es noch die normale Überladung, die auch eine Form der optionalen Parameterangabe darstellt.
int myFunc (int paraA,char paraB,double paraC) { ... } int myFunc (int paraA,char paraB) { ... //vielleicht das hier: myFunc ( paraA,paraB, 1.0f); }