In questo tutorial impareremo gli argomenti predefiniti di C ++ e il loro lavoro con l'aiuto di esempi.
Nella programmazione C ++, possiamo fornire valori predefiniti per i parametri delle funzioni.
Se una funzione con argomenti predefiniti viene chiamata senza passare argomenti, vengono utilizzati i parametri predefiniti.
Tuttavia, se gli argomenti vengono passati durante la chiamata della funzione, gli argomenti predefiniti vengono ignorati.
Utilizzo di argomenti di default
![](https://cdn.wiki-base.com/5527966/c_programming_default_arguments_parameters.png.webp)
Possiamo capire il funzionamento degli argomenti predefiniti dall'immagine sopra:
- Quando
temp()
viene chiamato, entrambi i parametri predefiniti vengono utilizzati dalla funzione. - Quando
temp(6)
viene chiamato, il primo argomento diventa6
mentre il valore predefinito viene utilizzato per il secondo parametro. - Quando
temp(6, -2.3)
viene chiamato, entrambi i parametri predefiniti vengono sovrascritti, risultando ini = 6
ef = -2.3
. - Quando
temp(3.4)
viene passato, la funzione si comporta in modo indesiderato perché il secondo argomento non può essere passato senza passare il primo argomento.
Pertanto,3.4
viene passato come primo argomento. Poiché il primo argomento è stato definito comeint
, il valore effettivamente passato è3
.
Esempio: argomento predefinito
#include using namespace std; // defining the default arguments void display(char = '*', int = 3); int main() ( int count = 5; cout << "No argument passed: "; // *, 3 will be parameters display(); cout << "First argument passed: "; // #, 3 will be parameters display('#'); cout << "Both arguments passed: "; // $, 5 will be parameters display('$', count); return 0; ) void display(char c, int count) ( for(int i = 1; i <= count; ++i) ( cout << c; ) cout << endl; )
Produzione
Nessun argomento passato: *** Primo argomento passato: ### Entrambi gli argomenti passati: $$$$$
Ecco come funziona questo programma:
display()
viene chiamato senza passare alcun argomento. In questo caso,display()
utilizza sia i parametri predefinitic = '*'
chen = 1
.display('#')
viene chiamato con un solo argomento. In questo caso, il primo diventa'#'
. Il secondo parametro predefiniton = 1
viene mantenuto.display('#', count)
viene chiamato con entrambi gli argomenti. In questo caso, gli argomenti predefiniti non vengono utilizzati.
Possiamo anche definire i parametri di default nella definizione della funzione stessa. Il programma sotto è equivalente a quello sopra.
#include using namespace std; // defining the default arguments void display(char c = '*', int count = 3) ( for(int i = 1; i <= count; ++i) ( cout << c; ) cout << endl; ) int main() ( int count = 5; cout << "No argument passed: "; // *, 3 will be parameters display(); cout << "First argument passed: "; // #, 3 will be parameters display('#'); cout << "Both argument passed: "; // $, 5 will be parameters display('$', count); return 0; )
Cose da ricordare
- Una volta fornito un valore predefinito per un parametro, anche tutti i parametri successivi devono avere valori predefiniti. Per esempio,
// Invalid void add(int a, int b = 3, int c, int d); // Invalid void add(int a, int b = 3, int c, int d = 4); // Valid void add(int a, int c, int b = 3, int d = 4);
- Se stiamo definendo gli argomenti predefiniti nella definizione della funzione invece del prototipo della funzione, la funzione deve essere definita prima della chiamata della funzione.
// Invalid code int main() ( // function call display(); ) void display(char c = '*', int count = 5) ( // code )