Con l'aiuto di esempi, capiremo C ++ che passa per approccio di riferimento e come fornire i puntatori come argomenti alle funzioni in questo articolo. I parametri passati per funzionare come puntatori sono uguali a qualsiasi altro valore quando si supera un valore per riferimento. Di conseguenza, è necessario fornire tipi di punta per gli argomenti della funzione, come nella funzione swap (), che scambia i valori di varie variabili interari affrontate dai loro argomenti.
Esempio 1: programma di passaggio per riferimento senza puntatori in C++
Qui, passiamo un valore per riferimento senza utilizzare la dichiarazione del puntatore. Di seguito è riportato il programma di illustrazione per passare una variabile per riferimento.
Inizialmente, abbiamo incluso i file di intestazione per l'implementazione del programma nella sezione di intestazione. Nel passaggio successivo, abbiamo una definizione di funzione per lo scambio di valori. La funzione viene fornita uno swap di nome e la funzione prende due referenze variabili String come parametro. Le variabili della stringa applicheranno la funzione di swap sono definite come stringhe di riferimento "STR1" e "STR2".
Quindi, nella funzione, abbiamo creato una "temp" variabile che abbiamo superato la variabile "STR1". Successivamente, lo "STR2" è assegnato a "STR1" e quindi "STR2" ha "STR2". In questo modo, l'algoritmo di swap viene applicato alla stringa di riferimento.
Abbiamo la nostra funzione principale in cui due stringhe sono dichiarate come "str_a" e "str_b" e inizializzate con alcuni valori di stringa. I valori della stringa verranno stampati prima che venga applicata la funzione di swap. Quindi, abbiamo invocato la funzione di swap nella funzione principale e passato la stringa definita nella funzione principale. Dopodiché, la stringa scambiata verrà stampata.
#includereIl risultato mostra la stringa prima dello scambio e dopo lo scambio attraverso la stringa di riferimento passata nella funzione.
Esempio 2: programma di passaggio per riferimento con puntatori in C++
Come nell'esempio precedente, abbiamo visto solo la stringa di passaggio per riferimento. Pertanto, useremo i puntatori per riferimento in C ++ in questo esempio.
Il programma inizia creando una funzione rappresentata con il nome "Swapstring" e passa le stringhe a due pover come argomento. Quindi, abbiamo definito la funzione principale del programma. Nella funzione principale, le due stringhe sono denominate rispettivamente "STR1" e "STR2". Queste variabili di stringa sono inizializzate con la stringa di parole.
Quindi, abbiamo chiamato la funzione "Swapstring", a cui vengono passate le variabili di stringa "STR1" e "STR2". Le stringhe verranno scambiate in questa definizione della funzione nella funzione principale e stampate. Successivamente, abbiamo chiamato la funzione "swapstring" al di fuori della funzione principale per lo scambio di stringhe specificate.
#includereQuindi, i risultati del passaggio di riferimenti a stringa con puntatori sono mostrati nella seguente grafica.
Esempio 3: programma di passaggio di stringa di passaggio per riferimento in c++
Anche se una funzione non riesce a modificare l'oggetto stringa di origine nel programma di chiamata, passare gli oggetti stringa C ++ tramite riferimento è abbastanza comune. Gli oggetti sono generalmente abbastanza grandi e quindi possono essere costosi rispetto alla quantità di archiviazione che usano e al tempo necessario per costruirne un clone quando li si supera il valore. Quindi, in generale, il passaggio di oggetti per riferimento risparmia sia la memoria che il tempo.
L'unico svantaggio di passare un oggetto tramite riferimento è che può alterare l'oggetto sorgente che è stato passato alla funzione. Questo non è desiderato. Se non vogliamo aggiornare un oggetto nella funzione, preferiremmo renderlo difficile.
Abbiamo una definizione di funzione nel seguente programma come "InputString", a cui abbiamo superato il riferimento delle stringhe. Quindi, abbiamo dichiarato un oggetto stringa "mystr" nella funzione principale e la stringa oggetto "mystr" contiene una stringa di una parola.
Dopodiché, abbiamo chiamato un "inputstring" e abbiamo superato questo oggetto stringa in esso. Abbiamo una definizione di funzione "InputString" al di fuori della funzione principale, che crea un nuovo riferimento di oggetti stringa da "Mystr". La nuova stringa è definita come "Newstr" e quindi inizializzata nel corpo della funzione. Abbiamo modificato la stringa oggetto "Newstr" e stampato il nuovo oggetto stringa.
#includereIl grafico seguente rappresenta i valori di stringa risultante della stringa di origine e la stringa modificata.
Esempio 4: programma di passaggio di un oggetto stringa costante per riferimento in c++
Il compilatore lancerà un errore se viene passato un riferimento all'oggetto costante. Possiamo affrontare questo problema utilizzando un riferimento variabile costante. Ciò impedisce la variabile a cui i punti di riferimento vengono modificati.
Innanzitutto, abbiamo la definizione della funzione "DisplayString", in cui viene passato un riferimento a stringa costante. Le stringhe costanti sono definite e inizializzate nella funzione principale come "STR1" e "STR2". Successivamente, passa queste stringhe costanti alla funzione "InputString". Invocato la funzione al di fuori della funzione principale in cui abbiamo dichiarato una variabile di stringa costante "Mystr".
#includereUn oggetto non costante viene passato a una funzione tramite un riferimento a oggetti costanti. Quindi non otteniamo errori di compilation nel codice.
Conclusione
I riferimenti consentono a una funzione di influire sul valore di un argomento, che può essere utile in alcune situazioni. I riferimenti const, al contrario, assicurano che la funzione non cambi l'argomento. Pertanto, abbiamo concluso l'articolo qui con la dimostrazione di esempio in C ++ e speriamo che possa essere utile.