In C++, l'entry point main() deve essere nel namespace globale (::main) e non può essere un metodo, anche se il nome non è riservato in altri modi e può essere usato per metodi, classi, enumerazioni o funzioni. A differenza del C non può essere chiamata ricorsivamente e non può essere letto il suo indirizzo. Il prototipo della funzione main è il seguente: int main(int argc, char* argv[], char* envp[]); La funzione main restituisce un intero ed è utilizzato per stabilire lo stato del programma al suo termine (un'uscita regolare dal programma è identificata da 0). I tre parametri della funzione sono rispettivamente il numero di argomenti passati al programma da linea di comando, dall'inglese argument count, il valori veri e propri, sempre dall'inglese e significa argument vector. Esiste anche un terzo parametro, nei sistemi operativi UNIX e Windows, envp. Questo parametro consente di avere accesso alle variabili di ambiente dell'utente in uso. In alternativa è possibile ottenere lo stesso vettore tramite la funzione getenv della libreria standard.