Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Posisjonelle og standardargumenter | Function Arguments Specification
C++-Funksjoner

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

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

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 → returnerer 0
  • terminate = 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.

Note
Merk

Det er viktig at alle standardargumenter er plassert etter de posisjonelle i parameterlisten. Ellers vil kompilatoren gi en feil.

question mark

Hvilken funksjonsdeklarasjon bruker posisjonelle og standardargumenter korrekt?

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 1

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 2. Kapittel 1
some-alt