Diretório de artigos
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:
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++.