oggetti funzionali. STL (parte 11)




funtore, C ++ principianti, un'entità funzionale, libreria STL, stlNelle discussioni precedenti hanno più volte balenato il termine come un funtore, ma acquista particolare rilevanza in relazione agli algoritmi. Ora è il momento di affrontare questo concetto. Functor - abbreviazione di foggetto unctional, che rappresenta la struttura, consente di utilizzare l'oggetto di classe in funzione di. In C ++, per la definizione della classe funtore descrivere abbastanza, che ha ridefinito l'operazione ().

il, come si forma una funzione dell'oggetto, facile dimostrare questo semplice esempio:

Anche da questo semplice esempio, presenta i seguenti: operazione () nella classe può essere oltrepassato (determinare con precisione, perché non ha implementazione di default) numero casuale, il tipo di parametri e tipo di ritorno (o addirittura non restituisce il valore). Come risultato,:

funtore, C ++ principianti, un'entità funzionale, libreria STL, stl

beneficio funtore è, che e). esso può essere parametrizzato per creare l'oggetto (prima di chiamare) utilizzando il costruttore con i parametri e B). Si può creare un oggetto temporaneo solo per la durata della chiamata di funzione. Questo è illustrato l'esempio della calcolatrice integrale semplificato:

Qui, in una fila cout << calcolare( oper )( op1, op2 ) Le azioni vengono eseguite in modo sequenziale:

  • crea un oggetto temporaneo classe calcolare costruttore con un parametro oper;

  • metodo viene eseguito per l'oggetto () (chiamata di funzione) con due parametri;

  • operazione, da eseguire nella chiamata di funzione, Essa dipende dal parametro oper, con cui l'oggetto è stato costruito;

  • chiamata di funzione restituisce il risultato dell'operazione;

  • oggetto temporaneo stabilito, subito dopo distrutta (se è stato descritto distruttore, sarebbe stato chiamato a questo punto);

E come risultato otteniamo:

funtore, C ++ principianti, un'entità funzionale, libreria STL, stl

Ma l'uso particolarmente diffusa funtori acquisite алгоритмах STL, discusso in precedenza, quando sono passati nella sfida come parametro, anziché la funzione, azione che definisce o algoritmo predicato.

Newsletter nuove lezioni sulla programmazione:

data
pagina
oggetti funzionali (funtori) C ++. STL Часть 11
valutazione
5
olio

Di olio

esperienze pratiche circa lo sviluppo del software 40 anni. Maestro globale Logic società di software internazionale. IBM Developer funziona autore permanente di pubblicazioni. redattore scientifico del computer casa editrice letteratura "Simbolo-Plus", San Pietroburgo.

3 pensieri su "oggetti funzionali. STL (parte 11)

    1. Questo è diverso da ++ Forum C: classi, portata.
      L'esempio si riferisce ad una visibilità classe base privata: accesso alla classe base, c'è solo dall'interno classe sommatore.
      Qualifier pubblico più già definito all'interno classe, e si riferisce a una funzione membro, annunciato dopo: costruttore e operatore (). Essa mostra che queste funzioni sono visibili e membri può essere utilizzato ovunque nel programma.

      In questo esempio, non è così importante, ma è una parte separata e importante del linguaggio C ++.

Lascia un Commento

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