L'espace de nommage standard
Bonjour,
Je débute en C++, j'ai du mal à comprendre les epaces de nommage. Je sais que qu'il ne faut pas utiliser
Code:
using namespace ...
dans les fichiers entête car l'on peut communiquer la supression de la protection de l'espace de nommage à toutes les unités de compilation ou ce fichier entête est inclue.
Ce que je ne comprends pas trop c'est ceci : quand je place un fichier d'entête "maison" avant la ligne
Code:
using name space standard
les autre fichiers de la bibliothèques standard sont comme ignorés, par contre quand je le place après la ligne tout fonctionne bien... et ça je comprends pas pourquoi si il existe de la doc sur le sujet merci de me l'indiquer je suis preneur...
En plus le fait de déclarer des fichiers d'entête pour certains types que je déclare dans mon fichier d'entête dans le fichier .cpp ne me dispense pas de devoir déclarer une nouvelle fois le fichier d'entête du type utilisé dans mon propre fichier d'entête... Ce que je ne comprends pas non plus vu que pour moi il sont déjà déclarés dans le fichier .cpp... Je pense que les déclarations des fichiers .h ne portent que sur le fichier dans lesquels ils sont déclarés, mais une fois que le préprocesseur a fait son travail il ne reste qu'un fichier à compilé donc tout devrait s'y trouver, non ?
Est-il normal de devoir faire autant de déclaration ou y a t il quelquechose que je fais mal ?
merci