Поделиться через


Имена и полные имена

Имена, используемые с двоичным оператором разрешения области действия (::вызовите «) квалифицированными именами». Указанное имя после binary оператор разрешения области действия должен быть членом класса, указанного слева от оператора или членом базового класса.

Имена, указанные после оператора (участник-выделения**.** OR - >), должны быть члены типа класса объекта, указанного слева от оператора или члены базового класса.Имена, определенные в правой части оператора (участник-выделения- >) также могут принимать объекты другого типа класса, при условии, что левая часть - > объект класса, а класс определяет перегруженный оператор (участник-выделения- >), результатом которого является указателем на другой тип класса.(Данная подготовка к работе рассматривается более подробно in Доступ к членам класса.)

Компилятор выполняет поиск имен в следующем порядке, остановка, когда имя найдено:

  1. Текущая область блока, если имя используется в функции; в противном случае - глобальная область.

  2. Данные через каждую включающего область блока, включая внешней области функции (которая включает аргументы функции).

  3. Если имя используется в функцию-член, то область выполнялся поиск имени типа.

  4. Базовые классы типа искать имени.

  5. Заключать, вложенные области класса (если таковые имеются) и производится его причины.Поиск продолжается до тех пор, пока не выполнялся поиск самой внешней области включающего класса.

  6. Глобальная область выполнялся поиск.

Однако можно внести изменения с этим порядком поиска следующим образом:

  1. Имена предшествуемые by :: обеспечьте, чтобы начать поиск в глобальной области.

  2. имена предшествуемые класс" structи union ключевые слова принудительный поиска только для компилятора класс" structили union имена.

  3. Имена в левой части оператора разрешения области действия (::допускается составление только) класс" struct" пространство именили union имена.

Если имя относится к нестатическому члену, но используется в статические функции-члены, выдается сообщение об ошибке.Аналогично, если имя относится к нестатическому члену любому во включающем классе, выдается сообщение об ошибке, так как классы не имеют заключать-класс, заключенных в теги this указатели.

См. также

Ссылки

Сводка правил области