Posisjonelle og standardargumenter
Sveip for å vise menyen
Posisjonelle argumenter
Posisjonelle argumenter er en metode for å sende verdier til en funksjon i en bestemt rekkefølge basert på funksjonens signatur. Verdiene knyttes til parametere i henhold til posisjonene i parameterlisten til funksjonssignaturen. Posisjonen til hvert argument avgjør hvilken parameter det tilsvarer.
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 gjøre et lite eksperiment: endre rekkefølgen på argumentene som sendes til funksjonen (bruk divide (y, x) i stedet for divide(x, y)), og du vil se at resultatet har endret seg. Dette er nettopp kjernen i posisjonelle argumenter: rekkefølgen på parameterne som sendes til funksjonen er viktig og påvirker direkte resultatet.
Standardargumenter
Standardargumenter lar deg tilordne standardverdier til funksjonsparametere. Hvis en funksjon kalles uten at alle argumentene oppgis, brukes standardverdiene for de som mangler. For å angi en standardverdi, gir du bare parameteren en verdi direkte i funksjonserklæringen.
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 }
Funksjonen divide() deler ett tall på et annet.
Hvis nevneren (b) er null:
terminate = true→ returnerer0terminate = false→ deler på et svært lite tall for å unngå feil
Parameteren terminate har en standardverdi på true, så den kan utelates. Sett terminate = false for å fortsette beregningen i stedet for å stoppe.
Det er viktig at alle standardargumenter er plassert etter de posisjonelle i parameterlisten. Ellers vil kompilatoren gi en feil.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår