namespace
Remonter à Liste alphabétique des mots clés - Index
Catégorie
Description
La plupart des applications réelles consistent en plusieurs fichiers source. Les fichiers peuvent être écrits et maintenus par plusieurs développeurs. Le moment venu, les fichiers séparés sont organisés et liés pour obtenir l'application finale. Habituellement, l'organisation des fichiers exige que tous les noms qui ne sont pas encapsulés dans un espace de nommage défini (comme une fonction, le corps d'une classe ou une unité de traduction) partagent le même espace de nommage global. Cependant, des définitions multiples de noms découvertes au moment de la liaison de modules distincts imposent de distinguer chaque nom. L'espace de nommage C++ propose une solution au problème des conflits de nom dans la portée globale.
Les espaces de nommage permettent à une application d'être partitionnée en plusieurs sous-systèmes. Chaque sous-système peut définir et opérer dans sa propre portée. Chaque développeur peut donc introduire les identificateurs dont il a besoin dans son sous-système sans avoir à se préoccuper de savoir si ces identificateurs sont utilisés par quelqu'un d'autre. La portée du sous-système est reconnue pour toute la durée de l'application par un identificateur unique.
Pour utiliser un espace de nommage :
- Définissez un espace de nommage avec le mot clé
namespace
et écrivez le code interne. - Accédez aux symboles de l'espace de nommage défini avec le mot clé
using
ou en spécifiant l'espace de nommage avec l'opérateur de résolution de portée.
- Exemple :
struct A { void foo(); }; // #1 struct B { void foo(); }; // #2 struct C : A, B { void callfoo() { foo(); //error: ambiguous B::foo(); // picks #2 } };