Partilhar via


Usando cabeçalhos de biblioteca de C++

Você inclui o conteúdo de um cabeçalho nomeando o padrão em incluir uma diretiva.

#include <iostream>   // include I/O facilities

Você pode incluir os cabeçalhos padrão em qualquer ordem, um cabeçalho padrão mais de uma vez, ou dois ou mais cabeçalhos padrão que definem o mesmo macro ou o mesmo tipo.Não inclui um cabeçalho padrão dentro de uma declaração.Não defina as macros que têm os mesmos nomes que palavra-chave antes que você inclui um cabeçalho padrão.

O cabeçalho da biblioteca de C++ inclui todos os outros cabeçalhos de biblioteca C++ precisa definir tipos necessários.(Sempre incluir explicitamente todos os cabeçalhos de biblioteca C++ necessários em uma unidade de tradução, no entanto, a fim de que você não deve errado sobre as dependências reais.) Um cabeçalho padrão de C nunca inclui um cabeçalho outro padrão.Declara um cabeçalho padrão ou define apenas as entidades descritas em este documento para ele.

Cada função da biblioteca é declarada em um cabeçalho padrão.A o contrário em C padrão, o cabeçalho padrão nunca fornece uma macro máscara com o mesmo nome que a função de mascaramento pela declaração da função e obtém o mesmo efeito.Para obter mais informações sobre mascarar macros, consulte Convenções de biblioteca de C++.

Todos os nomes diferentes de operator delete e de operator new em cabeçalhos de biblioteca C++ são definidos no namespace de std , ou em um namespace aninhado dentro do namespace de std .Você refere-se ao nome cin, por exemplo, como std::cin.A observe, entretanto, que os nomes macro não estão sujeitos a qualificação do namespace, portanto você necessita sempre __STD_COMPLEX sem um qualificador do namespace.

Em alguns ambientes de tradução, incluindo o cabeçalho da biblioteca de C++ pode içar os nomes externos declarados no namespace de std no namespace global além de isso, com declarações individuais de using para cada um dos nomes.Caso contrário, o cabeçalho não apresenta os nomes de biblioteca no atual espaço para nome.

O padrão de C++ requer que os cabeçalhos padrão de C declare todos os nomes externos no namespace std, então iça-os no namespace global com declarações individuais de using para cada um dos nomes.Mas em alguns ambientes de translação os cabeçalhos padrão de C não inclui nenhuma declaração de namespace, declarando todos os nomes diretamente no namespace global.Portanto, a maneira mais portátil de lidar com namespaces é então duas regras:

  • Para declarar certamente no namespace std um nome externo que está declarado em <stdlib.h>tradicional, por exemplo, inclui o cabeçalho <cstdlib>.Saiba que o nome também pode ser declarado no namespace global.

  • Para declarar certamente no namespace global um nome declarado em <stdlib.h>externo, inclua o cabeçalho <stdlib.h> diretamente.Saiba que o nome também pode ser declarado no namespace std.

Assim, se você deseja chamar std::abort para causar o encerramento anormal, você deve incluir <cstdlib>.Se você deseja chamar abort, você deve incluir <stdlib.h>.

Como alternativa, você pode escrever a declaração:

using namespace std;

que traz todos os nomes de biblioteca no atual espaço para nome.Se você escrever essa declaração imediatamente após incluir diretivas, você içam os nomes no namespace global.Você posteriormente pode ignorar considerações do namespace no restante da unidade de conversão.Você também impede que a maioria das diferenças entre os ambientes diferentes de conversão.

A menos que foram especificamente indicados de outra maneira, você não pode definir no espaço de nomes std , ou em um namespace aninhado dentro do namespace de std , em seu programa.

Consulte também

Referência

Visão geral da biblioteca C++ padrão

Segurança do thread na biblioteca C++ padrão