Argomenti Posizionali e Predefiniti
Scorri per mostrare il menu
Argomenti posizionali
Argomenti posizionali rappresentano un metodo per passare valori a una funzione in un ordine specifico, basato sulla firma della funzione. I valori vengono associati ai parametri secondo le posizioni nell'elenco dei parametri della firma della funzione. La posizione di ciascun argomento determina a quale parametro corrisponde.
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; }
È possibile eseguire un piccolo esperimento: cambiare l'ordine di passaggio degli argomenti alla funzione (utilizzare divide (y, x) invece di divide(x, y)), e si noterà che il risultato è cambiato. Questa è proprio l'essenza degli argomenti posizionali: l'ordine con cui si passano i parametri alla funzione è importante e influisce direttamente sul risultato.
Argomenti di default
Gli argomenti di default permettono di assegnare valori predefiniti ai parametri di una funzione. Se una funzione viene chiamata senza fornire tutti gli argomenti, quelli mancanti utilizzano i loro valori predefiniti. Per impostare un valore di default, basta assegnare un valore direttamente nella dichiarazione della funzione.
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 }
La funzione divide() divide un numero per un altro.
Se il denominatore (b) è zero:
terminate = true→ restituisce0terminate = false→ divide per un numero molto piccolo per evitare un errore
Il parametro terminate ha un valore di default pari a true, quindi può essere omesso. Impostare terminate = false per continuare il calcolo invece di interromperlo.
È importante che tutti gli argomenti di default siano posizionati dopo quelli posizionali nell'elenco dei parametri. In caso contrario, il compilatore genererà un errore.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione