действия, которая определяется видом и местом его объявления.
блок,
файл,
функция,
прототип функции,
класс,
поименованная область.
После выхода из блока память освобождается.
Функция
единственными идентификаторами, имеющими такую область действия, являются метки операторов.
в одной функции все метки должны различаться, но могут совпадать с метками других функций.
Класс
элементы структур, объединений и классов (за исключением статических элементов) являются видимыми лишь в пределах класса.
они образуются при создании переменной указанного типа и разрушаются при ее уничтожении.
Способ обратиться к скрытой локальной переменной отсутствует.
struct Node{
int Node;
int i ;
} Node;
В данном случае противоречия нет, поскольку имена типа, переменной и элемента структуры относятся к разным пространствам.
Все они, кроме имен функций, могут быть переопределены во вложенных блоках.
Другой класс имен образуют имена типов перечислений, структур, классов и объединений.
Каждое имя должно отличаться от имен других типов в той же области видимости.
Отдельный класс составляют элементы каждой структуры, класса и объединения.
Имя элемента должно быть уникально внутри структуры, но может совпадать с именами элементов других структур.
Метки образуют отдельное пространство имен.
Объявление, в отличие от определения, не создает переменную.
Объявление с extern не должно содержать инициализацию: если она присутствует, модификатор extern игнорируется.
Обе переменные доступны в файлах one.cpp и two.cpp.
Как правило, это делается в заголовочном файле, который затем подключается к модулям, использующим этот тип.
Нарушение этого правила приводит к ошибкам, которые трудно обнаружить.
Поскольку компиляторы, как правило, не обладают возможностью сличать определения одного и того же типа в различных файлах.
Таким образом, поименованная область может объявляться и изменяться за рамками одного файла.
Помещать объявления в такую область полезно для того, чтобы сохранить локальность кода.
Нельзя получить доступ из одного файла к элементу неименованной области другого файла.
В объявлении поименованной области могут присутствовать как объявления, так и определения.
Если требуется сделать доступными все имена из какой-либо области, используется оператор using namespace:
using namespace demo;
Операторы using и using namespace можно использовать и внутри объявления поименованной области, чтобы сделать в ней доступными объявления из другой области:
namespace Department_of_ Applied_ Physics
{ using demo::i; // ... }
Это обеспечивает совместимость сверху вниз.
Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть