Définition et utilisation des espaces de noms (C++)


Préface

Dans le développement réel, les programmeurs développent généralement en collaboration, et pendant le processus de développement, plusieurs programmeurs peuvent définir le même nom de variable, ce qui conduit à un désastre tel qu'un crash du programme lorsque le programme est finalement mis en place. En langage C, de telles erreurs sont inévitables, et le l’émergence de l’ espace de noms de mots-clés C++ résout ce problème.

Par exemple, cette erreur :

#include <iostream>
#include <stdlib.h>
using namespace std;
int rand = 10;
int main()
{
    
    
	cout << rand << endl;
	return 0;
}

Lorsque nous exécutons le code ci-dessus, le compilateur signalera l'erreur suivante.
Signaler une erreur
Nous savons que rand est une fonction incluse dans le fichier d'en-tête stdlib.h , et lorsque nous définissons globalement une variable nommée rand, le compilateur nous demandera de redéfinir . Les espaces de noms résolvent très bien ce problème. Apprenons d'abord la définition et l'utilisation des espaces de noms pour résoudre ce problème.


1. Définition de l'espace de noms

La définition d'un espace de noms consiste simplement à ajouter votre propre nom après le mot-clé de l'espace de noms, plus une paire de {}. Nous le montrerons avec le code ci-dessous.

namespace name//name可以随便起名,在开发中一般用项目的名字来命名
{
    
    
	//在命名空间中可以定义变量/函数/结构体
	int a;
	int Add(int x, int y)
	{
    
    
		return x + y;
	}
	struct student
	{
    
    
		int age;
		string name;
	};
}
//此外命名空间还可以如下所示嵌套定义
namespace N1
{
    
    
	int a = 0;
	int b = 2;
	namespace N2
	{
    
    
		int w = 45;
		int y = 11;
	}
}

Les débutants peuvent également se poser la question : que se passe-t-il si les deux espaces de noms portent le même nom ?
En fait, lorsque deux espaces de noms portent le même nom, les deux espaces de noms seront fusionnés en un seul espace de noms. Les
espaces de noms des fichiers .h et .cpp du fichier projet seront également fusionnés en un seul espace de noms.

2. Utilisation des espaces de noms

Les espaces de noms peuvent être utilisés des trois manières suivantes. Par souci de commodité, nous allons d'abord définir l'espace de noms suivant :

namespace Gao
{
    
    
	int a=10;
}

Lorsque nous voulons que le code suivant génère directement a dans la fonction principale, le compilateur signalera une erreur car le compilateur ne peut pas trouver où se trouve a. Nous allons présenter comment générer a des trois manières suivantes, une par une.

int main()
{
    
    
	cout<<a<<endl;
	return 0;
}

1. Ajoutez un nom d'espace de noms et un qualificatif de portée

Cette méthode indique au compilateur que la variable a se trouve dans l'espace de noms Gao, afin que le compilateur puisse trouver et afficher

int main()
{
    
    
	cout<<Gao::a<<endl;
	return 0;
)

2. Utilisez using pour importer un membre de l'espace de noms

Cette méthode équivaut à indiquer à l'avance au compilateur qu'il existe un dans l'espace de noms Gao, afin que le compilateur puisse y accéder directement.

using Gao::a;
int main()
{
    
    
	cout<<a<<endl;
}

3. Utilisez l'espace de noms using namespace pour introduire

Cette méthode étend directement l'espace de noms Gao, permettant au compilateur d'accéder à volonté à tous les membres de l'espace de noms Gao.

using namespace Gao;
int main()
{
    
    
	cout<<a<<endl;
	return 0;
}

Résumer

Après avoir étudié ce blog, je pense que les questions du début sont un jeu d'enfant pour tout le monde. Continuons à approfondir le chemin de l'apprentissage du C++.

Je suppose que tu aimes

Origine blog.csdn.net/weixin_63614711/article/details/128335041
conseillé
Classement