In tutti i nostri corsi di c ++, tutti gli insegnanti mettono sempre using namespace std;
subito dopo la #include
s nei loro .h
file. Questo mi sembra pericoloso da allora includendo quell'intestazione in un altro programma otterrò lo spazio dei nomi importato nel mio programma, forse senza rendermene conto, intenzionalmente o volendolo (l'inclusione dell'intestazione può essere annidata molto profondamente).
Quindi la mia domanda è doppia: ho ragione che using namespace
non dovrebbe essere usato nei file di intestazione e / o c'è un modo per annullarlo, qualcosa del tipo:
//header.h
using namespace std {
.
.
.
}
Un'altra domanda sulla stessa linea: un file di intestazione dovrebbe avere #include
tutte le intestazioni di cui ha .cpp
bisogno il file corrispondente , solo quelle necessarie per le definizioni di intestazione e lasciare che il .cpp
file #include
il resto, o nessuno e dichiarare tutto ciò di cui ha bisogno come extern
?
Il ragionamento alla base della domanda è lo stesso di sopra: non voglio sorprese quando includo i .h
file.
Inoltre, se ho ragione, è un errore comune? Intendo nella programmazione del mondo reale e nei progetti "reali" là fuori.
Grazie.
using namespace
istruzioni, è possibile utilizzare il nome completo per risolvere il problema.