« Programmation C++/Les espaces de noms » : différence entre les versions
Contenu supprimé Contenu ajouté
typo |
m <source> -> <syntaxhighlight> (phab:T237267) |
||
Ligne 15 :
Pour simplifier le code, et les désigner sans spécifier l'espace de noms, il faut utiliser l'instruction suivante :
<
using namespace std;
</syntaxhighlight>
Utiliser différents espaces de noms permet, lors d'un projet en équipe ou de l'utilisation de bibliothèque externes, de créer plusieurs entités portant le même nom.
Ligne 24 :
Pour déclarer vos fonctions, variables et classes dans votre espace de noms, placez-les dans un bloc de ce type :
<
namespace identifiant
{
// Déclarations ici ...
}
</syntaxhighlight>
Exemple :
<
namespace exemple
{
Ligne 39 :
}
}
</syntaxhighlight>
== Utiliser un espace de noms ==
Pour utiliser les entités d'un espace de noms en dehors de celui-ci (voire dans un autre espace de noms), vous pouvez utiliser le nom précédé de l'espace de nom :
<
int a = exemple::suivant(5);
</syntaxhighlight>
ou utiliser la déclaration <code>using</code> :
<
using exemple::suivant;
...
int a = suivant(5);
</syntaxhighlight>
ou encore utiliser la directive <code>using</code>
<
using namespace exemple;
...
int a = suivant(5);
</syntaxhighlight>
'''Recommandation''': Il est préférable de ne pas utiliser les directives <code>using</code> dans un fichier entête, excepté dans les fonctions ''inline''. En effet, la directive ayant pour effet d'ouvrir l'espace de noms à l'espace global, toute unité qui inclurait ce fichier entête se verrait automatiquement ouvrir l'espace en question pouvant provoquer rapidement des collisions si cette même unité incluait d'autres fichiers entêtes utilisant aussi la directive <code>using</code> sur d'autres espaces de noms.
Ligne 68 :
Exemple:
<
namespace global {
namespace exemple {
Ligne 77 :
namespace ge = global::exemple; // alias
int a = ge::suivant(5);
</syntaxhighlight>
== En plusieurs fois ==
Ligne 85 :
*Fichier '''exemple.h'''
<
namespace exemple
{
int suivant(int n);
}
</syntaxhighlight>
*Fichier '''exemple.cpp'''
<
#include "exemple.h"
Ligne 103 :
}
}
</syntaxhighlight>
|