Основные выражения
Основные выражения являются стандартными блоками более сложных выражений. Они могут быть литералами, именами и именами, квалифицированными оператором разрешения область (::
). Основное выражение может иметь любую из следующих форм.
primary-expression
literal
this
name
::
name
(
expression
)
A literal
— это постоянное первичное выражение. Его тип зависит от формы его спецификации. Дополнительные сведения об указании литерала см. в разделе Литералы .
Ключевое слово this
— это указатель на экземпляр класса. Он доступен в нестатических функциях-членах и указывает на экземпляр класса, из который была вызвана функция. Ключевое слово this
нельзя использовать за пределами текста функции-члена класса.
Дополнительные сведения о типе this
указателя см this
. в указателе.
Оператор область разрешения (::
), за которым следует имя, является основным выражением. Такие имена должны быть именами в глобальной области, а не именами членов. Объявление имени определяет тип выражения. Это l-значение (т. е. оно может отображаться в левой части выражения назначения), если декларирующее имя является l-значением. Оператор разрешения области действия позволяет ссылаться на глобальное имя, даже если это имя скрыто в текущей области. См. пример использования оператора область разрешения.
Выражение, заключенное в скобки, является основным выражением. Его тип и значение идентичны типу и значению непарентеизированного выражения. Это l-значение, если непарентезное выражение является l-значением.
Ниже приводятся примеры основных выражений.
100 // literal
'c' // literal
this // in a member function, a pointer to the class instance
::func // a global function
::operator + // a global operator function
::A::B // a global qualified name
( i + 1 ) // a parenthesized expression
Эти примеры считаются именами, а также основными выражениями в различных формах:
MyClass // an identifier
MyClass::f // a qualified name
operator = // an operator function name
operator char* // a conversion operator function name
~MyClass // a destructor name
A::B // a qualified name
A<int> // a template id
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по