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


Ключевые слова языка (C++/CLI)

По сравнению с управляемыми расширениями для C++ в Visual C++ изменились некоторые ключевые слова языка.

В новом синтаксисе Visual C++ из всех ключевых слов удален двойной знак подчеркивания, который использовался в качестве префикса (единственное исключение — ключевое слово __identifier). Например, для объявления свойства теперь используется ключевое слово property, а не __property.

В управляемых расширениях двойной знак подчеркивания использовался в качестве префикса по двум основным причинам:

  • Этот способ определения локальных расширений совместим со стандартом ISO-C++. Основным предназначением управляемых расширений является обеспечение совместимости со стандартным языком без использования новых ключевых слов и маркеров. Именно это послужило основной причиной для выбора синтаксиса указателей, который используется для объявления объектов управляемых ссылочных типов.

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

Корпорация Майкрософт заявляет, что в результате удаления двойных знаков подчеркивания по-прежнему обеспечивается совместимость с указанными стандартами. Однако благодаря применению динамической объектной модели CLR реализуется новая эффективная концепция программирования. Для поддержки новой концепции требуется использование новых ключевых слов и маркеров высокого уровня. Для этого требовалась разработка эффективной реализации новой концепции, в которой бы обеспечивалась интеграция со стандартным языком и его поддержка. Новая структура синтаксиса обеспечивает высокоуровневую интеграцию двух разнородных объектных моделей.

Также большое внимание уделено выделению новых ключевых слов в существующем синтаксисе. Для этого используются контекстные и составные ключевые слова. Перед изучением нового синтаксиса языка следует подробнее ознакомиться с этими разновидностями ключевых слов.

Контекстные ключевые слова обладают различными значениями в различных контекстах программы. Например, ключевое слово sealed в общем контексте программы рассматривается как обычный идентификатор. Однако в разделе объявления типа управляемого ссылочного класса оно обрабатывается как ключевое слово в контексте объявления этого класса. Это позволяет свести к минимуму вероятность неоднозначного толкования новых ключевых слов в языке, что крайне важно для пользователей, использующих существующую базу кода. Вместе с тем, такой подход позволяет использовать новые эффективные возможности программирования и функции языка, недоступные в управляемых расширениях. Пример использования ключевого слова sealed см. в разделе Объявление управляемых типов классов.

Составные ключевые слова, например value class, представляют собой частный случай контекстных ключевых слов. В них существующее ключевое слово дополняется контекстным модификатором, который отделяется пробелом. Такая пара слов обрабатывается как единое целое, а не два отдельных ключевых слова.

См. также

Основные понятия

Основы миграции C++/CLI

Расширения компонентов для платформ среды выполнения