Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Positionella och standardargument | Specifikation av funktionsargument
C++-Funktioner

Positionella och standardargument

Svep för att visa menyn

Positionella argument

Positionella argument är ett sätt att skicka värden till en funktion i en specifik ordning baserat på funktionens signatur. Värdena kopplas till parametrar enligt deras positioner i funktionssignaturens parameterlista. Varje arguments position avgör vilken parameter det motsvarar.

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 göra ett litet experiment: ändra ordningen på argumenten som skickas till funktionen (använd divide (y, x) istället för divide(x, y)), och du kommer att se att resultatet har förändrats. Detta är själva kärnan i positionella argument: ordningen på parametrarna som skickas till funktionen är viktig och påverkar direkt dess resultat.

Standardargument

Standardargument gör det möjligt att tilldela standardvärden till funktionsparametrar. Om en funktion anropas utan att alla argument anges, används standardvärdena för de som saknas. För att ange ett standardvärde, tilldela helt enkelt ett värde direkt 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() dividerar ett tal med ett annat. Om nämnaren (b) är noll:

  • terminate = true → returnerar 0
  • terminate = false → dividerar med ett mycket litet tal för att undvika fel

Parametern terminate har standardvärdet true, så den kan utelämnas. Ange terminate = false för att fortsätta beräkningen istället för att avbryta.

Note
Notera

Det är viktigt att alla standardargument placeras efter de positionella i parameterlistan. Annars kommer kompilatorn att ge ett felmeddelande.

question mark

Vilken funktionsdeklaration använder positionella och standardargument på rätt sätt?

Vänligen välj det korrekta svaret

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 1

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Avsnitt 2. Kapitel 1
some-alt