Definição e uso de namespaces (C++)


Prefácio

No desenvolvimento real, os programadores geralmente desenvolvem de forma colaborativa, e durante o processo de desenvolvimento vários programadores podem definir o mesmo nome de variável, o que leva a um desastre, como uma falha do programa quando o programa é finalmente montado.Na linguagem C, esses erros são inevitáveis, e o o surgimento do namespace de palavras-chave C++ resolve esse problema.

Por exemplo, este erro:

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

Quando executamos o código acima, o compilador reportará o seguinte erro:
Informar um erro
Sabemos que rand é uma função incluída no arquivo de cabeçalho stdlib.h , e quando definimos uma variável chamada rand globalmente, o compilador nos dirá para redefinir . Namespaces resolvem esse problema muito bem. Vamos primeiro aprender a definição e o uso de namespaces para resolver esse problema.


1. Definição de namespace

A definição de um namespace é simplesmente adicionar seu próprio nome após a palavra-chave do namespace, mais um par de {}. Mostraremos isso no código abaixo.

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;
	}
}

Os iniciantes também podem fazer uma pergunta: e se os dois namespaces tiverem o mesmo nome?
Na verdade, quando dois namespaces têm o mesmo nome, os dois namespaces serão mesclados em um namespace.Os namespaces
nos arquivos .h e .cpp no ​​arquivo do projeto também serão mesclados em um namespace.

2. Uso de namespaces

Os namespaces podem ser usados ​​das três maneiras a seguir. Por uma questão de conveniência, primeiro definiremos o seguinte namespace:

namespace Gao
{
    
    
	int a=10;
}

Quando quisermos que o código a seguir produza a diretamente na função principal, o compilador reportará um erro porque o compilador não consegue encontrar onde está a. Apresentaremos como gerar a das três maneiras a seguir, uma por uma.

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

1. Adicione o nome do namespace e o qualificador de escopo

Este método informa ao compilador que a variável a está no namespace Gao, para que o compilador possa encontrar e gerar

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

2. Use using para importar um membro do namespace

Este método equivale a informar antecipadamente ao compilador que existe um namespace Gao, para que o compilador possa acessá-lo diretamente.

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

3. Use o namespace using namespace para apresentar

Este método expande diretamente o namespace Gao, permitindo que o compilador acesse todos os membros do namespace Gao à vontade.

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

Resumir

Depois de estudar este blog, acredito que as perguntas do início são moleza para todos, vamos continuar nos aprofundando no caminho do aprendizado de C++.

Acho que você gosta

Origin blog.csdn.net/weixin_63614711/article/details/128335041
Recomendado
Clasificación