Passando argomenti per riferimento nella funzione C ++

Passando argomenti per riferimento nella funzione C ++

Una funzione può essere definita nel codice con argomento o senza argomento. Il valore dell'argomento può essere approvato per valore o riferimento nell'argomento della funzione. Quando il valore dell'argomento della funzione viene approvato dal riferimento, sia la variabile dell'argomento e la variabile che passa il valore in riferimento a tale argomento, condividi la stessa posizione nella memoria.

Quindi, il valore della variabile verrà modificato se il valore della variabile argomento viene modificato all'interno della funzione. Il simbolo '&' è usato nell'argomento della funzione per dichiarare l'argomento per riferimento. I diversi modi per passare l'argomento per riferimento nella funzione C ++ hanno mostrato in questo tutorial.

Esempio-1: passa un singolo argomento per riferimento

Il modo per passare un singolo argomento in riferimento a una funzione ha mostrato nel seguente esempio. Qui, un valore di stringa viene inizializzato in una variabile denominata strval. Questa variabile è passata come argomento della funzione denominata FunctionByReference ().

L'argomento per la variabile di riferimento denominata STR è stato utilizzato nell'argomento della funzione. Il valore della variabile di riferimento verrà modificato dopo aver chiamato questa funzione. Il valore di Strval viene stampato prima e dopo aver chiamato la funzione per verificare come funziona la variabile di riferimento.

// Includi la libreria necessaria
#includere
Utilizzo dello spazio dei nomi std;
// Dichiara la funzione con la chiamata per argomento di riferimento
void functionByReference (String & STR)

// Modifica il valore di riferimento
str = "Mi piace la programmazione C ++";

int main ()

// Inizializza una variabile stringa
string strval = "Mi piace la programmazione";
// Stampa il valore iniziale della variabile
cout << "The value of strVal before calling the function:" << strVal << '\n';
// Funzione di chiamata con la variabile String
FunctionByReference (Strval);
// Stampa il valore modificato della variabile
cout << "The value of strVal after calling the function is:" << strVal << '\n';
restituzione 0;

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito il codice sopra. Il valore dello strval era "Mi piace la programmazione" prima di chiamare la funzione e il valore di questa variabile viene modificato in "Mi piace la programmazione C ++" dopo aver chiamato la funzione per passare l'argomento per riferimento.

Esempio 2: modificare il contenuto della variabile di riferimento in base alla condizione

L'esempio seguente mostra il modo per modificare il valore della variabile di riferimento in base alla condizione specifica. Qui, la funzione denominata CalcolaDgrade () prenderà il primo argomento per riferimento e il secondo argomento per valore.

Il valore del primo argomento verrà modificato in base al valore approvato dal secondo argomento. Verranno prelevati due valori dall'utente e passati alla funzione e il valore modificato della variabile approvato per riferimento verrà stampato dopo l'esecuzione del codice.

/// include la libreria necessaria
#includere
Utilizzo dello spazio dei nomi std;
/*
Dichiarare la funzione con una chiamata per argomento di riferimento
e un argomento di chiamata per valore per calcolare il grado
e modificare la variabile di riferimento
*/
void Calcolagrade (String & Info, Int Marks)

if (marchi> = 80)
info = info + "ho un+.";
altro se (segni <80 && marks>= 75)
info = info + "ho un.";
altro se (segni <75 && marks>= 70)
info = info + "ho un-.";
altro
info = "Nessuna informazione di classificazione trovata.";

int main ()

Informazioni su stringa;
INT MARKS;
// prendi gli input dall'utente
cout << "Enter the student ID:" ;
CIN >> informazioni;
cout << "Enter the obtained marks:" ;
CIN >> segni;
// Chiama la funzione con due variabili
Calcolagrade (informazioni, marchi);
// Stampa il valore modificato della variabile di riferimento
cout << info << '\n';
restituzione 0;

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito il codice sopra. L'output mostra che il valore della variabile di riferimento viene modificato da "784534" a "784534 ha ottenuto un+" per il valore di Mark 84.

Esempio-3: Passando più argomenti per riferimento

L'esempio seguente mostra il modo di passare più argomenti per valori in una funzione e modificare i valori di questi argomenti in base ai valori degli altri argomenti. Tre input verranno prelevati dall'utente prima di chiamare la funzione.

Qui, il bonus (%) e le variabili totali saranno approvate come argomenti per riferimento e altre due variabili, lo stipendio e l'esperienza saranno approvati per valore nella funzione denominata Calculatealarywithbonus quando verrà chiamata. La funzione modificherà i valori del bonus e le variabili totali in base ad altre variabili.

// Includi le librerie necessarie
#includere
#includere
Utilizzo dello spazio dei nomi std;
// Dichiara la funzione con la chiamata per argomento di riferimento
void calcolatelarywithbonus (int sal, int yr, galleggiante e bonus, doppio e totale)

// Imposta il bonus in base all'esperienza
if (yr> = 5)
bonus = 0.10;
else if (yr> = 2)
bonus = 0.07;
totale = sal + sal*bonus;

int main ()

// Dichiara le variabili necessarie
Bonus float = 0.05;
doppio totale = 0.0;
Stipendio int, esperienza;
Nome stringa;
// Prendi input dall'utente
cout << "Enter the employee name:" ;
getline (cin, nome);
cout << "Enter the salary:" ;
CIN >> Stipendio;
cout << "Enter the years of experience:" ;
CIN >> esperienza;
// chiama la funzione per calcolare lo stipendio in base al bonus
Calcolatelarywithbonus (stipendio, esperienza, bonus, totale);
// Stampa i dettagli dello stipendio
cout << "Salary information with bonus: \n";
cout << "Name: " << name << "\n";
cout << "Salary: " << salary << "\n";
cout << "Experience: " << experience << "years" << "\n";
cout << "Bonus(%): " << bonus << "\n";
cout << "Salary with bonus: " << total << "\n";
restituzione 0;

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito il codice sopra in base all'ingresso tratto dall'utente. Secondo l'output, 10 ha preso come valore di esperienza che è maggiore di 5. Quindi, il valore del bonus è stato modificato in 0.10 e il valore del totale è stato conteggiato in base al bonus.

Conclusione

L'uso del passaggio dell'argomento in riferimento alla funzione C ++ è stato spiegato in questo tutorial utilizzando vari esempi per aiutare i nuovi programmatori C ++ a utilizzare questa funzione nel loro codice correttamente.