Имена и полные имена
Имена, используемые с двоичным оператором разрешения области действия (::вызовите «) квалифицированными именами». Указанное имя после binary оператор разрешения области действия должен быть членом класса, указанного слева от оператора или членом базового класса.
Имена, указанные после оператора (участник-выделения**.** OR - >), должны быть члены типа класса объекта, указанного слева от оператора или члены базового класса.Имена, определенные в правой части оператора (участник-выделения- >) также могут принимать объекты другого типа класса, при условии, что левая часть - > объект класса, а класс определяет перегруженный оператор (участник-выделения- >), результатом которого является указателем на другой тип класса.(Данная подготовка к работе рассматривается более подробно in Доступ к членам класса.)
Компилятор выполняет поиск имен в следующем порядке, остановка, когда имя найдено:
Текущая область блока, если имя используется в функции; в противном случае - глобальная область.
Данные через каждую включающего область блока, включая внешней области функции (которая включает аргументы функции).
Если имя используется в функцию-член, то область выполнялся поиск имени типа.
Базовые классы типа искать имени.
Заключать, вложенные области класса (если таковые имеются) и производится его причины.Поиск продолжается до тех пор, пока не выполнялся поиск самой внешней области включающего класса.
Глобальная область выполнялся поиск.
Однако можно внести изменения с этим порядком поиска следующим образом:
Имена предшествуемые by :: обеспечьте, чтобы начать поиск в глобальной области.
имена предшествуемые класс" structи union ключевые слова принудительный поиска только для компилятора класс" structили union имена.
Имена в левой части оператора разрешения области действия (::допускается составление только) класс" struct" пространство именили union имена.
Если имя относится к нестатическому члену, но используется в статические функции-члены, выдается сообщение об ошибке.Аналогично, если имя относится к нестатическому члену любому во включающем классе, выдается сообщение об ошибке, так как классы не имеют заключать-класс, заключенных в теги this указатели.