Come utilizzare i riferimenti di funzione in C ++

Come utilizzare i riferimenti di funzione in C ++
C ++ fornisce vari metodi per passare gli argomenti alle funzioni, incluso per valore, per puntatore e per riferimento. Il passaggio degli argomenti per riferimento consente alle funzioni di modificare i valori delle variabili originali, invece di lavorare con copie. I riferimenti alla funzione forniscono un modo alternativo per passare gli argomenti per riferimento e possono semplificare il codice eliminando la necessità di sintassi del puntatore.

Questo articolo esplorerà come usare Riferimenti della funzione in C++, compresa la sintassi, un esempio e i vantaggi in C++.

Quali sono i riferimenti di funzione in c++

Gli sviluppatori possono usare Riferimenti della funzione in C ++ per scrivere codice più efficace ed espressivo. Riferimenti della funzione, Rispetto alle chiamate di funzione convenzionali, consentire ai programmatori di inviare intere funzioni come parametri ad altre funzioni. Ciò ha una varietà di vantaggi, tra cui una leggibilità del codice migliorata, libertà di progettazione delle funzioni ampliate e significativi guadagni delle prestazioni.

Una caratteristica chiave di C ++ è la possibilità di inviare funzioni come parametri ad altre funzioni utilizzando Riferimenti della funzione. Quando si lavora con applicazioni grandi e complesse, ciò può essere immensamente utile poiché promuove una maggiore flessibilità e astrazione.

Come utilizzare i riferimenti di funzione in C++

La sintassi di base per dichiarare a Riferimento della funzione è come segue:

Return-Type & Function-Ref-Name (Parametri)

In questo caso, "Tipo di funzione" si riferisce al tipo di funzione che desideriamo inviare come argomento, "Tipo di ritorno" si riferisce al tipo di valore Riferimento della funzione ritorna, e "Parametri" si riferisce agli argomenti approvati.

Ci sono alcuni passaggi fondamentali nell'uso Riferimenti della funzione in c++. Crea una funzione che accetta prima un riferimento di funzione come argomento. Qualsiasi funzione che corrisponda al tipo di riferimento deve essere in grado di gestire questa funzione. La tua funzione deve essere in grado di gestire qualsiasi funzione di quel tipo.

#includere
int add (int a, int b)
restituire a + b;

int sottract (int a, int b)
restituire a - b;

int main ()
int (*padd) (int, int) = aggiungi;
int (*psubtract) (int, int) = sottract;
std :: cout << "6 + 4 = " << pAdd(6, 4) << std::endl;
std :: cout << "8 - 2 = " << pSubtract(8, 2) << std::endl;
restituzione 0;

Nel codice sopra, le due funzioni aggiungono e sottrai accettano entrambe due parametri interi e restituiscono un valore intero. Quindi, definiamo due variabili di riferimento della funzione chiamate padd E psubtract, che sono puntatori per funzioni che accettano due argomenti interi e producono un valore intero. Con gli indirizzi delle funzioni ADD e Sottract, rispettivamente, inizializziamo queste variabili. Quindi, potremmo utilizzare le variabili di riferimento della funzione PADD e PSubtract per invocare indirettamente queste funzioni.

Produzione

Quando si usa Riferimenti della funzione in C++, Dovresti aderire a alcune migliori pratiche. Prima di ogni altra cosa, è fondamentale confermare che tutte le funzioni a cui fornisci riferimenti sono apolidi. Ciò indica che usano semplicemente i parametri di input che sono stati forniti a loro e non modificano alcun stato esterno. Questo perché usando Riferimenti della funzione Gestire le modifiche allo stato esterno può avere risultati inaspettati in quanto non intendevano farlo.

Quando si passa una funzione come argomento a un'altra funzione, come quando si utilizza un algoritmo di ordinamento che accetta una funzione di confronto come argomento, Riferimenti della funzione può essere utile. Inoltre, possono essere utilizzati per implementare funzioni di callback, in cui si chiama una funzione quando si svolge un evento specifico.

Vantaggi dell'utilizzo dei riferimenti alla funzione

1: codice efficiente

Quando usi Riferimenti della funzione, Puoi anche beneficiare di una varietà di funzionalità C ++ che ti aiutano a creare codice più pulito e più efficace. Ad esempio, puoi scrivere un codice incredibilmente potente e versatile combinando Riferimenti della funzione con altre funzionalità C ++ come iteratrini, sovraccarico di operatori e modelli.

2: miglioramenti delle prestazioni

La capacità di aumentare notevolmente le prestazioni è forse il più grande vantaggio di Riferimenti della funzione. UN Riferimento della funzione è un puntatore alla funzione quando viene passata. In questo modo, puoi salvare spazio non creando una copia della funzione ogni volta che viene invocata. Questo può essere estremamente importante quando si tratta di funzioni che richiedono tempo, complicate o su larga scala.

3: Pass funzioni come argomenti

La capacità di fornire funzioni come parametri ad altre funzioni è uno dei vantaggi chiave dell'utilizzo Riferimenti della funzione. Puoi iniziare a fornire Riferimenti della funzione come argomenti dopo la configurazione della funzione. Basta passare il riferimento alla funzione appropriata quando si chiama la funzione. Questo può essere fatto o nominando esplicitamente la funzione o usando una funzione Lambda. Quest'ultimo è particolarmente utile quando è necessario passare una funzione senza nome o in linea.

Conclusione

Per i programmatori che cercano di creare un codice più efficace ed espressivo, Riferimenti della funzione in C ++ sono fondamentali. È possibile aumentare la flessibilità nella progettazione delle funzioni, aumentare la leggibilità del codice e ottenere significativi vantaggi di prestazioni passando Riferimenti della funzione come parametri. Puoi iniziare a usare Riferimenti della funzione nel tuo codice C ++ e profitto da tutti i loro vantaggi con un po 'di pratica.