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

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

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

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

Note
Bemærk

Det er vigtigt, at alle standardargumenter er placeret efter de positionelle i parameterlisten. Ellers vil compileren give en fejl.

question mark

Hvilken funktionsdeklaration bruger korrekt positionelle og standardargumenter?

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 1

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 2. Kapitel 1
some-alt