Come scrivere e utilizzare gli oggetti della funzione in C ++

Come scrivere e utilizzare gli oggetti della funzione in C ++
Oggetti di funzione, Conosciuto anche come funttori, sono un modo per scrivere codice riutilizzabile in C ++ che fornisce un approccio più flessibile alla personalizzazione dell'algoritmo. Un oggetto che può essere usato come funzione e risponde alle chiamate allo stesso modo di una funzione standard è noto come a Oggetto funzione. Possono essere utilizzati per implementare operazioni complesse sulle raccolte o per definire le fasi di elaborazione genericamente. Il seguente saggio fornirà una guida dettagliata su come scrivere e utilizzare Oggetti di funzione in c++.

Questi oggetti si comportano come funzioni, ma con stato e funzionalità aggiuntivi. Possono essere utilizzati per fornire maggiore flessibilità e personalizzazione di una funzione semplice e sono comunemente usati in contenitori come std :: ordining e std :: find_if.

Come scrivere oggetti di funzione?

Per scrivere a Oggetto funzione, Dobbiamo creare una classe che sovraccarica l'operatore delle chiamate di funzione (). Le istanze della classe possono essere invocate come se fossero funzioni convenzionali grazie a questo operatore, che è una componente cruciale di a Oggetto funzione. La sintassi per il sovraccarico dell'operatore è:

class myFunctionObject
pubblico:
ReturnType Operator () (paramtype1 p1, paramtype2 p2,…)
// implementazione

;

Dove ReturnType è il tipo di ritorno della funzione e Paramtype1, Paramtype2, E così via sono i tipi dei parametri della funzione. L'implementazione dell'operatore () dovrebbe eseguire la logica del Oggetto funzione.

Come utilizzare gli oggetti di funzione in C++

Una volta che abbiamo definito una classe che sovraccarica l'operatore di chiamata di funzione ed esegue la logica del Oggetto funzione, Possiamo usarlo come segue:

#includere
Class Square
pubblico:
int operator () (int x) const
restituire x * x;

;
int main ()
Quadrato quadrato;
numero int = 5;
int risultato = quadra (numero);
std :: cout << "The square of " << number << " is " << result << std::endl;
restituzione 0;

Nell'esempio sopra, costruiamo la classe quadrata, la cui funzione operatore () restituisce il quadrato di un numero intero x quando è passato come argomento. Creiamo un oggetto quadrato chiamato un quadrato nella funzione principale () e lo utilizziamo per trovare il quadrato di un numero intero.

Produzione

Vantaggi degli oggetti della funzione

Oggetti di funzione fornire diversi vantaggi rispetto alle funzioni tradizionali in C++. Offrono una maggiore flessibilità quando si utilizzano algoritmi perché possono essere personalizzati per eseguire qualsiasi operazione, a differenza delle funzioni tradizionali. Possono anche contenere uno stato, che può essere utile per mantenere le informazioni tra le chiamate, mentre le funzioni tradizionali sono completamente apolide.

Inoltre, Oggetti di funzione può essere passato come argomenti ad altre funzioni, che possono rendere il codice più conciso e più facile da leggere. Ci consentono anche di utilizzare funzionalità C ++ come modelli per scrivere codice generico che funzioni con diversi tipi di dati, iterabili e algoritmi.

Un vantaggio di utilizzare un file Oggetto funzione Invece di una semplice funzione è che può avere ulteriori stati o funzionalità che possono essere personalizzati.

Conclusione

Oggetti di funzione In C ++ sono una tecnica utile per scrivere codice riutilizzabile che fornisce una maggiore flessibilità rispetto alle funzioni convenzionali. Puoi usarli creando una classe che sovrascrive l'operatore di chiamata di funzione, che può quindi essere superata come argomenti agli algoritmi che usano Oggetti di funzione come input. Usando Oggetti di funzione ha i vantaggi di essere flessibili, statali, generici e intuitivi. Con Oggetti di funzione, Possiamo scrivere un codice più espressivo, compatto e comprensibile che è anche più facile da mantenere.