Partager via


déclaration d'espace de noms

une déclaration de l'espace de noms identifie et assigne un nom unique à un espace de noms utilisateur-déclaré.

namespace identifier

Notes

De ces espaces de noms sont utilisés pour résoudre le problème de toute collision de nom avec de grands programmes et à bibliothèques.Les programmeurs peuvent utiliser des espaces de noms pour le développement des nouveaux composants logiciels et bibliothèques sans provoquer de conflits de nom avec les composants existants.

Par exemple :

// namespace_declaration1.cpp
namespace X
{
   int i;
   double j;
}
int main()
{
   X::i++;
}

La syntaxe pour la définition de l'espace de noms est :

namespace identifier
{
   [ declaration-list ]
}

une espace de noms-définition peut être imbriquée dans une autre espace de noms- définition.Chaque espace de noms-définition doit apparaître à la portée du fichier soit immédiatement dans une autre espace de noms-définition.

Par exemple :

// namespace_declaration2.cpp
// C2870 expected
namespace A
{
   int j = 3;
   int f(int k);
}

namespace Outer
{
   int n = 6;
   int func(int num);

   namespace Inner
   {
      float f = 9.993;
   }
}

int main()
{
   namespace local   // C2870: not at global scope
   {
   }
}

Contrairement à d'autres zones déclaratives, la définition d'un espace de noms peut être fractionné sur plusieurs parties d'une seule unité de traduction.

// namespace_declaration3.cpp
namespace A
{
   // declare namespace A variables
   int i;
   int j;
}

namespace B
{
}

namespace A
{
   // declare namespace A functions
   void func(void);
   int int_func(int i);
}

int main()
{
}

Lorsqu'un espace de noms est repris de cette manière, après sa définition initiale, la continuation est appelé une définition de l'espace de noms d'extension.La définition d'origine de cet espace de noms est une définition d'origine de l'espace de noms.

L'utilisation de cette notation peut être pratique avec de plus longs noms ou de grands programmes.à l'aide de la déclaration, directive using, et alias d'espace de noms offrent des moyens plus simples de référencer des membres de l'espace de noms.

Une déclaration de l'espace de noms , si elle comporte un espace de noms, un espace de noms sans nom, ou une définition portée de l'espace de noms, doit être accompagné d'un corps de l'espace de noms délimité par des accolades.l'instruction

namespace X;

est une erreur de syntaxe.l'instruction

namespace X{};

n'est pas une erreur de syntaxe, mais est sans importance.

Pour des informations générales, consultez les espaces de noms.

L'identificateur dans une définition d'origine de l'espace de noms doit être unique dans la région déclarative dans laquelle elle est utilisée.L'identificateur est le nom de l'espace de noms et est utilisé pour baliser ses membres.

La zone déclarative pour une définition de l'espace de noms est son corps.Le corps doit être entre les accolades () et peut contenir des déclarations ou des définitions de variables, des fonctions, des objets, des modèles, et les espaces de noms imbriqués.Les déclarations dans la déclaration-liste sont considérés comme étant des membres de l'espace de noms.Le nom de chaque membre de l'espace de noms est automatiquement qualifié par le nom de son espace de noms et d' opérateur de résolution de portée.

Voir aussi

Référence

Les espaces de noms (C++)

Mots clés C++

Les espaces de noms sans nom