Операторы объявления (C++)
Операторы объявления вводят новые имена в текущую область видимости. Такими именами могут быть:
Имена типов (class, struct, union, enum, typedef и указатель на тип).
Имя объектов.
Имя функций.
Объявления могут содержать любой из следующих параметров:
block-declaration
function-definition
template-declaration
explicit-instantiation
explicit-specialization
linkage-specification
namespace-definition
Если объявление в блоке вводит имя, которое уже объявлено за его пределами, то предыдущее объявление скрывается на всю продолжительность этого блока. После завершения блока предыдущее объявление снова становится видимым.
В одном и том же блоке не допускается размещение нескольких объявлений одного и того же имени.
Дополнительные сведения об объявлениях и скрытии имен см. в разделах Объявления и определения и Область видимости.