Avvio e chiusura di un programma C++
Un programma C++ esegue le stesse operazioni eseguite da un programma C all'avvio e alla chiusura del programma, nonché alcune altre descritte in questo argomento.
Prima che l'ambiente di destinazione chiami la funzione main
e dopo aver archiviato i valori costanti iniziali specificati in tutti gli oggetti con una durata statica, il programma esegue i costruttori rimanenti per tali oggetti statici. L'ordine di esecuzione non viene specificato tra unità di conversione, ma si può comunque ritenere che alcuni oggetti iostreams vengano inizializzati correttamente per l'uso da parte di questi costruttori statici. Questi flussi di testo di controllo sono:
cin - per l'input standard.
cout - per l'output standard.
cerr - per l'output di errore standard non memorizzato nel buffer.
clog - per l'output di errore standard memorizzato nel buffer.
È anche possibile usare questi oggetti all'interno dei distruttori chiamati per gli oggetti statici durante la chiusura del programma.
Come con C, la restituzione da main
o la chiamata di exit
chiama tutte le funzioni registrate con atexit
in ordine inverso del Registro di sistema. Un'eccezione generata da tale funzione registrata chiama terminate
.
Vedi anche
Panoramica sulla libreria standard C++
Thread Safety in the C++ Standard Library (Sicurezza dei thread nella libreria standard C++)