URL: https://www.overclockers.at/coding-stuff/standardparameter_c_124313/page_1 - zur Vollversion wechseln!
Also ich hab da ein ganz einfaches Beispiel geschrieben.
Es sind 3 zahlen angegeben die multipliziert werden.
Wenn zur Berechnung 1 bis 3 Parameter nicht angegeben wird (werden), werden die Werte der Standardparameter übernommen, aber es kommt trotzdem was falsches raus, manche sind wiederum richtig.
Kann mir jemand erklären wieso?
Code:#include<iostream.h> int cube(int a=5,int b=2, int c=3); int main() { int a=4; int b=5; int c=6; int area; area=cube(a, b, c); cout<<area<<endl; area=cube(b,c); cout<<area<<endl; area=cube(a); cout<<area<<endl; area=cube(a,c); cout<<area<<endl; area=cube(a,b); cout<<area<<endl; area=cube(c); cout<<area<<endl; } int cube(int a, int b, int c) { return (a*b*c); }
Na ganz einfach. Du hast
int cube(int a=5,int b=2, int c=3);
definiert.
Wenn du jetzt cube() mit weniger als 3 Parameter aufrufst, so werden die "von vorne aufgefüllt". Wie deine Variablen heißen ist dem Compiler da ziemlich wurscht.
cube (b, c); ist nichts anderes als cube (5, 6); und das wird als cube (5, 6, 3); verstanden.
achja thx, weiss schon was gemeint ist.
entscheidend ist also die Reihenfolge wie die Werte aufgefüllt werden und nicht die Namen der Parameter.
Ist auch klar, welchen "Namen" sollte sonst z.B. "2" haben? Oder "a+b"?
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025