I riferimenti in C ++

I riferimenti in C ++
5 (100%) 2 voti





C ++ riferimenti, ++ variabili di riferimento

Nei nostri articoli precedenti, Abbiamo già menzionato, che i parametri possono essere passati alla funzione significato o il puntatore. Ha funzionato durante la scrittura di programmi in C. In C ++, è possibile passare i parametri per la funzione di collegamento. Si consideri l'esempio di questa lezione, si noterà, Collegamenti che utilizzano più conveniente di puntatori.

collegamento – è un nome alternativo della variabile (il suo soprannome, in altre parole). Quando la funzione accetta un parametro per riferimento, nome del parametro diventa una variabile alias, che si passa alla funzione. Tale metodo di trasmissione dati permette la funzione di lavorare con valori variabili, che vengono trasmessi ad esso, piuttosto che con le copie di queste variabili.

Definizione di una funzione di, puntare, che il parametro è un riferimento, è necessario aggiungere il nome di una commerciale &.

Raccogliere il seguente esempio, e tutto dovrebbe essere chiaro:

Cominciamo con la funzione cambiamento(). Chiamarlo in linea 17 fonte, Passiamo nelle variabili per valore. Funzione creare in modo sicuro le copie di queste variabili, scrive i dati in essi e, completando la sua “difficile” lavoro, distruggere quelle copie. Di conseguenza, tutte le modifiche alle variabili trasferiti non accadrà.

Ora guardate la definizione di funzione changeRef(), in cui i parametri vengono passati per riferimento – linee 45 – 49. Come accennato in precedenza, abbiamo usato & , per dire al compilatore che, che accetta i parametri – questo link. All'interno della funzione ci riferiamo ai collegamenti, come variabili ordinarie. Cioè, non abbiamo bisogno di applicare l'operazione dereference, se è necessario modificare il valore di una variabile:

C ++ riferimenti, ++ variabili di riferimento

E chiamare questa funzione dalla principale (fila 21), non abbiamo bisogno di, variabili di trasmissione, applicare l'operazione di prendere l'indirizzo (stesso & , ma con una connotazione diversa), se necessario per effettuare il trasferimento dal puntatore. Il risultato della funzione vedrà, visualizzare i valori delle variabili sullo schermo. I valori delle variabili modificati con successo.

infine – puntatore trasmissione. Direttamente per determinare changePtr() – linee 51 – 55. C'è qualcosa, che non abbiamo usato alla trasmissione collegamento – dereference i puntatori per modificare le variabili:

C ++ riferimenti, ++ variabili di riferimento

Dal momento che la funzione è quella di prendere le variabili puntatore, e memorizza il puntatore di indirizzo, quando si chiama (fila 25) peredaёm nelle sue variabili di indirizzo:

C ++ riferimenti, ++ variabili di riferimento

Il risultato del programma:

C ++ riferimenti, ++ variabili di riferimento

Non voglio davvero gravare voi qualsiasi ulteriori informazioni sui collegamenti. Essi sono più spesso utilizzati è quello di passare parametri a una funzione. Nel ruolo dei parametri possono agire variabili, array (è a noi familiare). Ma ciò che è più importante – il link per gli oggetti della funzione sono passati strutture e classi. Verrà il tempo e noi parleremo.

L'unico, Si è per quanto riguarda la sintassi, se avete bisogno di dichiarare un collegamento al programma, si deve inizializzare immediatamente (per mostrare come variabile viene creato). per esempio:

C ++ riferimenti, ++ variabili di riferimentoCosì il programma si può utilizzare il nome di riferimento per un ulteriore accesso ai vostri dati, che memorizza aaa. Questo esempio se qualcuno è a voi di scrivere il codice e ha dato il nome della variabile aaa. Questo programmatore sa, memorizza il numero di caselle. e voi, per la vostra convenienza, data l'alias variabile amountOfBoxes e utilizzare un nuovo nome, aggiungendo qualche nuovo codice in un programma.

Propongo di vedere il video dei parametri di funzionamento, anche quando e parlato di collegamenti.




Newsletter nuove lezioni sulla programmazione:

5 pensieri su "I riferimenti in C ++

  1. collegamento – è un nome alternativo della variabile, IMHO è più qui a spiegare nulla. una variabile, citarne alcuni. Con qualsiasi nome di una variabile, è possibile lavorare in qualche modo. In caso con riferimento agli stessi argomenti della funzione, solo un nome alternativo della variabile sarà visibile all'interno della funzione.

    Beh, un paio di esempi, aggiungerei.

    inutilmente. pointer – è anche variabile (semplicemente memorizza l'indirizzo di un oggetto), allora la funzione può passare un riferimento a un puntatore come
    void foo(int &*arr);
    Che tipo di.

    E un altro esempio, è 2 funzioni:
    void foo(int * a);
    bar vuoto(int &un);
    Il primo prende un riferimento a un oggetto, secondo- pointer.

    Da qualche parte nel programma (per esempio nella funzione principale è l'oggetto:
    int era = 123;

    Se è necessario passare nella prima funzione – dobbiamo ottenere l'indirizzo di un oggetto:
    foo(&era);
    secondariamente – Si può semplicemente passare, mentre all'interno della funzione utilizzerà il nome alternativa dell'oggetto
    bar(era);
    Se occorre definire un puntatore a un oggetto – deve anche essere inizializzato indirizzo:
    int * p = &era;

    All'interno della prima funzione con l'oggetto di lavoro come al solito (perché non ci resta che un nome alternativo):
    void foo(int &un) { a = 456; }

    Nella seconda funzione, abbiamo un puntatore, pertanto costretti a dereferenziarlo per accedere all'oggetto:
    bar vuoto(int * a) { *a = 789; }
    // se un – pointer,
    // il (*un) – oggetto,
    // e (&(*un)) – staffe indirizzo oggetto possono essere rimossi, set per chiarezza (riflettono le priorità).

  2. riferimenti – piuttosto sgradevole per i principianti concetto in C ++ (anche se è naturale, anche per i principianti in Java o Python).

    Per i principianti possono dire così (anche se non è abbastanza tocho):
    – riferimento variabile – è esattamente lo stesso, come un puntatore ad essa, ma questo link, A differenza di puntatore, non è possibile utilizzare l'indirizzo aritmetica (+, -, ++, –).

    Si è imprecisa nel senso di, ma subito consente di utilizzare i collegamenti nel codice senza errori.

    1. Oleg, grande che si presta attenzione ai nostri articoli e rendere note importanti per la presentazione del materiale. Grazie e dal amministratore del sito e, credo che, da parte dei visitatori )

    2. Né un principiante non capisce voi. La tua spiegazione non capisce, I seguenti articoli sono tuoi, ed è molto difficile da capire, impossibile. Ma questo articolo è molto facile da percepire. Non più articoli come puntatori a funzioni

      1. Che cosa significa “nessuno”? Non solo comprendere il più stupido ;-) … altri nulla, Si capire.

        programmazione – generalmente non è semplice ingegneria disciplina, e di spiegarlo “sul dito” impossibile harmfully stesso, come, per esempio, analisi matematica e geometria descrittiva.

        E sarà in grado di imparare la programmazione solo, chi sarà la pratica a lungo e duramente e indipendentemente scrivere il codice.

        P.S. E imparando a spiegare il livello di “due e due, Babes, a volte si trasforma quattro, se non ti dispiace” – Nessuno ha imparato nulla, vi è solo un'illusione “Anch'io, qualcosa di studiato lì”.

Lascia un Commento

Inserire il codice nei tag: <pre class="lang:C ++ decodifica:true ">IL TUO CODICE</pre>