Espaces de noms C ++

Espaces de noms C ++
L'espace de noms est un conteneur pour les identifiants. En C ++, si nous voulons avoir besoin d'une déclaration comme certaines variables, fonctions et classes de notre programme, nous l'avons mis en groupe. Ce groupe est appelé espace de noms. Ainsi, l'espace de noms est un groupe de déclarations.

Caractéristiques identiques de l'espace de noms

un. L'espace de noms est généralement un mot clé, et nous utilisons l'espace de noms avec n'importe quel nom unique dans notre programme.

b. Nous utilisons l'espace de noms dans notre fichier source. L'espace de noms peut également être utilisé dans le fichier d'en-tête défini par l'utilisateur. Cela signifie que nous créons un fichier d'en-tête et à l'intérieur du fichier d'en-tête, nous pouvons utiliser l'espace de noms.

c. L'espace de noms met le nom de son membre dans un espace distinct, afin qu'ils ne contactent pas les noms d'autres espaces de noms ou les espaces de noms globaux.

Création d'un espace de noms dans le programme C ++

Espace de noms MyExample
// Déclarations

un. Contrairement à la définition de la classe, la définition de l'espace de noms ne se termine pas avec un point-virgule.

b. L'espace de noms doit être déclaré à la portée mondiale ou imbriqué dans un autre espace de noms (1).

c. L'espace de noms a une autre fonctionnalité importante. Nous pouvons utiliser un nom d'alias pour notre nom d'espace de noms. Il peut être utilisé comme:

Espace de noms Me = MyExample;

Ici, moi est le nom d'alias de l'espace de noms MyExample. Si nous le déclarons une fois, nous pouvons utiliser cet espace de noms MyExample comme moi tout au long du programme.

Espaces de noms sans nom

Un espace de noms n'ayant aucun nom peut également être autorisé dans le programme C ++.

Espace de noms

// Déclarations

Exemple de programmation 1:

#inclure
Utilisation de Namespace Std; // Utilisation de l'espace de noms;
Espace de noms MyExample
int x;
int fun1 ();
Exemple de classe

public :
void fun2 ();
;

int myexample :: fun1 ()

couter<<“ Hello fun1 :\n ” ;

void MyExample :: Exemple :: fun2 () / * :: La résolution / l'opérateur de la portée est utilisé ici.* /

couter<<“ Hello fun2 :\n ” ;

Utilisation de l'espace de noms MyExample; // L'espace de noms est utilisé ici.
int main()

x = 6;
fun1 ();
Exemple ob; // Créer une instance d'exemple de classe
ob.fun2 ();

Sortir:

Explication:

Ici, nous avons déclaré qu'un espace de noms est appelé myexample. À l'intérieur de l'espace de noms, nous avons déclaré une variable «x» et une fonction fun1 (). Un exemple de classe est également déclaré dans l'espace de noms. Une autre fonction appelée fun2 () est déclarée dans l'exemple de classe.

Si nous attribuons certaines valeurs dans la variable «x» dans notre fonction principale, nous devons écrire

MyExample :: x = 6;

Parce que la variable x n'est pas déclarée dans la fonction principale. C'est le membre de l'espace de noms MyExample. Donc, nous devons écrire:

Espace de noms :: x;

:: est appelé Opérateur de résolution de portée. Nous devons écrire un espace de noms :: x = 6 à l'intérieur de la fonction principale pour accéder à la variable x.

Si nous voulons appeler la fonction fun1 (), nous devons le définir. Nous devons écrire:

int myexample :: fun1 ()

fun1 () est le membre de MyExample Namespace, nous devons le définir. Nous devons définir fun1 () avec son espace de noms et son opérateur de résolution de portée (: :).

Si nous voulons appeler le fun2 () à l'intérieur de l'exemple de classe, nous devons écrire:

void MyExample :: Exemple :: fun2 ();

En tant que fonction Fun2 () est le membre de l'espace de noms MyExample, et à l'intérieur de l'exemple de classe, nous devons écrire ceci:

Utilisation de Namespace Std;

À l'intérieur du Fun1 (), nous utilisons la déclaration COUT. Il s'agit d'un objet prédéfini, sa déclaration existe dans un espace de noms appelé std. Cet espace de noms est déjà défini dans un fichier nommé iostream. Nous devons inclure ce fichier dans notre programme.

Exemple de programmation 2:

#inclure
Utilisation de Namespace Std;
Espace de noms MyExample

int x;
void fun1 ();
Exemple de classe

public:
Exemple void ()

Couter<<“ example is a function :\n ” ;

;

Utilisation de l'espace de noms MyExample;
void myExample :: fun1 ()

couter<<“ in fun1 ” ;

int main()

x = 6;
Exemple ob;
ob.exemple() ;
fun1 ();

Sortir:

Explication:

Une définition de l'espace de noms peut être continue et étendue sur plusieurs fichiers (1).

fichier1.H
Espace de noms MyExample int x, y;
void fun1 ();

fichier2.H
Espace de noms MyExample int u, v;
void fun2 ();

Supposons que nous ayons deux fichiers d'en-tête appelés fichiers1.h et file2.H . Dans Fichier1.H, nous utilisons un espace de noms appelé myexample. À l'intérieur du MyExample se trouvent deux variables x et y et une fonction appelée fun1 () est déclarée.

Dans Fichier2.H, nous utilisons un autre espace de noms avec le même nom appelé myExample. À l'intérieur de la myexample se trouvent deux variables x et y et une fonction appelée fun2 () est déclarée.

Si nous incluons ces deux fichiers dans notre programme, nous pouvons avoir une idée fausse qu'il existe deux espaces de noms différents qui existent le même nom qui existe. Un conflit de nom peut se produire. En fait, un seul espace de noms MyExample existe dans le programme. Dans cet espace de noms, toutes les variables x, y, u, v et fun1 (), fun2 () sont des ajouts. Deux espaces de noms différents ne peuvent pas exister ici.

Conclusion:

Discutant en détail de l'espace de noms, nous sommes arrivés à cette conclusion que l'espace de noms nous fournit une fonctionnalité unique dans notre programme C ++ qui consiste à organiser nos éléments de déclaration comme les variables, les fonctions, les classes de manière systématique.

Source:

(1) StudyTonight.com. N.p., la toile. 12 avril. 2022. https: // www.StudyTonight.com / cpp / espace de noms en-CPP.php