Instruções de declaração (C++)
As instruções de declaração introduzem novos nomes no escopo atual. Esses nomes podem ser:
Nomes de tipo (class, struct, union, enum, typedef e pointer-to-member).
Nomes de objetos.
Nomes de funções.
As declarações podem ser qualquer uma das seguintes:
block-declaration
function-definition
template-declaration
explicit-instantiation
explicit-specialization
linkage-specification
namespace-definition
Se uma declaração dentro de um bloco introduzir um nome já declarado fora do bloco, a instrução anterior ficará oculta pela duração do bloco. Após a conclusão do bloco, a declaração anterior ficará visível novamente.
Várias declarações de mesmo nome no mesmo bloco são ilegais.
Para obter mais informações sobre declarações e ocultação de nome, consulte Declarações e definições e Escopo.