Funzioni membro speciali (C++)
C++ definisce diversi tipi di funzioni che possono essere dichiarate solo come membri della classe - che vengono chiamati “funzioni membro speciali.„ Queste funzioni influenzano il modo in cui gli oggetti di una classe specificata vengono creati, eliminato, copiato e convertito in oggetti di altri tipi.Un'altra proprietà fondamentale di molte di queste funzioni è che possono essere chiamati in modo implicito (dal compilatore).
Le funzioni membro speciali descritte in questa sezione sono:
costruttori.Abilitare l'inizializzazione automatica di oggetti.
distruttori.Eseguire la pulizia dopo che gli oggetti in modo esplicito o implicito vengono eliminati.
funzioni di conversione.Conversione tra tipi di classi e altri tipi.
nuova funzione di operatore.Per l'allocazione dinamica della memoria.
funzione di operator delete.Libera la memoria allocata tramite nuovo operatore.
operatore di assegnazione (operator=).Utilizzato quando si effettua un'assegnazione ha luogo.
Gli elementi nell'elenco precedente possono essere definiti dall'utente per ogni classe.
Le funzioni membro speciali conformi alle stesse regole di accesso di altre funzioni membro.Le regole di accesso sono descritte in Controllo di accesso al membro.Nella tabella seguente viene riepilogato le funzioni friend e membri si comportano.
riepilogo di comportamento di funzione
Tipo funzione |
La funzione viene ereditata da una classe base? |
È possibile utilizzare la funzione essere virtuale? |
È possibile utilizzare la funzione restituisca un valore? |
È la funzione membro o friend? |
Il compilatore genererà una funzione se l'utente non fare? |
---|---|---|---|---|---|
Costruttore |
No |
No |
No |
Membro |
Sì |
costruttore di copia |
No |
No |
No |
Membro |
Sì |
distruttore |
No |
Sì |
No |
Membro |
Sì |
Conversion |
Sì |
Sì |
No |
Membro |
No |
assegnazione (operator=) |
No |
Sì |
Sì |
Membro |
Sì |
new |
Sì |
No |
void* |
membro statico |
No |
elimina |
Sì |
No |
void |
membro statico |
No |
altre funzioni membro |
Sì |
Sì |
Sì |
Membro |
No |
Funzioni friend |
No |
No |
Sì |
Friend |
No |