Positionelle og Standardargumenter
Stryg for at vise menuen
Positionelle argumenter
Positionelle argumenter er en metode til at videregive værdier til en funktion i en bestemt rækkefølge baseret på funktionens signatur. Værdierne tilknyttes parametre i henhold til deres positioner i parameterlisten for funktionssignaturen. Positionen af hvert argument bestemmer, hvilken parameter det svarer til.
main.cpp
1234567891011121314151617181920#include <iostream> // Function that takes two positional arguments float divide(float a, float b) { if (b == 0) return 0; return a / b; } int main() { float x = 8; float y = 4; // Calling the 'divide' function with two positional arguments float result = divide(x, y); std::cout << result << std::endl; }
Du kan udføre et lille eksperiment: ændr rækkefølgen af argumenterne, der videregives til funktionen (brug divide (y, x) i stedet for divide(x, y)), og du vil se, at resultatet ændrer sig. Dette er netop essensen af positionelle argumenter: rækkefølgen af parametre, der videregives til funktionen, er vigtig og påvirker direkte resultatet.
Standardargumenter
Standardargumenter giver mulighed for at tildele standardværdier til funktionsparametre. Hvis en funktion kaldes uden at angive alle argumenter, anvendes standardværdierne for de manglende. For at angive en standardværdi, tildeles parameteren en værdi direkte i funktionsdeklarationen.
main.cpp
12345678910111213141516171819202122#include <iostream> // Default value is set for the third parameter float divide(float a, float b, bool terminate = true) { if (b == 0) { if (terminate) return 0; return a / 0.000001; // Prevent crash by using a very small number } return a / b; } int main() { std::cout << divide(10, 2) << std::endl; // Normal division std::cout << divide(10, 0) << std::endl; // Default behavior (error) std::cout << divide(10, 0, false) << std::endl; // Forced division }
Funktionen divide() dividerer et tal med et andet.
Hvis nævneren (b) er nul:
terminate = true→ returnerer0terminate = false→ dividerer med et meget lille tal for at undgå en fejl
Parameteren terminate har en standardværdi på true, så den kan udelades. Sæt terminate = false for at fortsætte beregningen i stedet for at stoppe.
Det er vigtigt, at alle standardargumenter er placeret efter de positionelle i parameterlisten. Ellers vil compileren give en fejl.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat