執行階段平台的元件擴充功能
Visual C++ 提供語言擴充功能可協助您進行執行階段平台。 您可以使用 Visual C++ 元件擴充功能 (C++/CX),您可以將編譯成機器碼的 Windows 市集 應用程式和元件。 您可以使用 C++/CX,雖然您可以透過程式設計的方式建立 Windows 市集 應用程式直接對 Windows 執行階段 COM 介面,在中,您可以有建構函式、例外狀況和其他較 C++ 程式設計的慣用語一起使用。 若要啟用設計為在 .NET 平台的 Managed 執行環境的 C++,您可以使用 C++/CLI。
兩個執行階段,一組擴充功能
C++/CX 是 C++/CLI 的子集。 如需 C++/CX 和 C++/CLI通用的副檔名,語意取決於您是否以 Common Language Runtime (CLR) 或 Windows 執行階段。 若要編譯您的應用程式是以 Windows 執行階段,請指定 /ZW 編譯器選項。 若要編譯成在 CLR,請指定 /clr 編譯器選項。 因此,使用 Visual Studio 中建立專案時,這些參數會自動設定為。
如需如何建立 C++ 中的 Windows 市集 應用程式的詳細資訊,請參閱 Roadmap for Windows Store apps using C++。
C++/CLI 擴充 ISO/ANSI C++ 標準和定義根據 Ecma C++/CLI 標準。 如需詳細資訊,請參閱.NET 程式設計的 Visual C++。
資料型別關鍵字
語言擴充功能包含 彙總關鍵字,為關鍵字包含泛空白字元分隔兩個語彙基元。 語彙基元可能有一個表示何時的個別使用這些物件和另一個意義,當一起使用。 例如, 「ref」是泛用的識別項,,而且文字「類別」就是宣告原生類別的關鍵字。 但是,當這些文字組合成 ref class時,產生的彙總關鍵字宣告稱為的執行階段 類別的實體。
擴充功能也包含 敏感的內容 關鍵字。 關鍵字視為敏感的內容 (包含其種類陳述式和其在該陳述式的位置。 例如,的語彙基元「屬性」可以是識別項,也可以宣告一種特殊的公用類別成員。
下表列出在 C++ 語言擴充功能的關鍵字。
Keyword |
即時線上 |
用途 |
參考資料 |
---|---|---|---|
ref class ref struct |
否 |
宣告類別。 |
|
value class value struct |
否 |
宣告實值類別。 |
|
interface class interface struct |
否 |
宣告介面。 |
|
enum class enum struct |
否 |
宣告列舉型別。 |
|
property |
是 |
宣告屬性。 |
|
delegate |
是 |
宣告委派。 |
|
event |
是 |
宣告事件。 |
覆寫規範
您可以使用下列關鍵字限定於衍生覆寫行為。 雖然 new 關鍵字不適用於 C++ 擴充功能,它的登錄時,因為可用於其他內容的。 某些規範為原生程式設計也是有效的。 如需詳細資訊,請參閱How to: 宣告在原生的編譯中的覆寫規範。
Keyword |
即時線上 |
用途 |
參考資料 |
---|---|---|---|
abstract |
是 |
指示函式或類別是抽象的。 |
|
new |
否 |
指示函式不是基底類別版本的覆寫。 |
|
override |
是 |
指示方法必須是基底類別版本的覆寫。 |
|
sealed |
是 |
防止類別當做基底類別使用。 |
泛型的關鍵字
下列關鍵字加入至支援泛型型別。 如需詳細資訊,請參閱泛型 (C++ 元件擴充功能)。
Keyword |
即時線上 |
用途 |
---|---|---|
generic |
否 |
宣告泛型型別。 |
where |
是 |
指定套用至泛型型別參數的條件約束。 |
其他關鍵字
下列關鍵字加入至 C++ 擴充功能。
Keyword |
即時線上 |
用途 |
參考資料 |
---|---|---|---|
finally |
是 |
表示預設的例外狀況 handlings 行為。 |
|
for each, in |
否 |
列舉集合中的項目。 |
|
gcnew |
否 |
配置在記憶體回收堆積 (Heap) 的型別。 而不是 new 和 delete的用法。 |
|
ref new |
是 |
指派一個 Windows 執行階段 型別。 而不是 new 和 delete的用法。 |
|
initonly |
是 |
表示成員只能在宣告中初始化或在靜態建構函式。 |
|
literal |
是 |
建立一個常值變數。 |
|
nullptr |
否 |
表示控制代碼或指標不會指向物件。 |
範本建構
下列語言建構會實作為範本,而不是關鍵字。 如果您指定 /ZW 編譯器選項,則會在 lang 命名空間中定義。 如果您指定 /clr 編譯器選項,則會在 cli 命名空間中定義。
Keyword |
用途 |
參考資料 |
---|---|---|
array |
宣告陣列。 |
|
interior_ptr |
(僅限 CLR) 資料會指向參考型別。 |
|
pin_ptr |
(僅限 CLR) 為暫時隱藏記憶體回收系統的 CLR 參考型別的點。 |
|
safe_cast |
判斷並執行的執行階段型別的最佳的轉換方法。 |
|
typeid |
(僅限 CLR) 擷取描述特定型別或物件的 System.Type 物件。 |
陳述式
下列型別陳述式指示執行階段會自動處理配置的物件的存留期和刪除。
運算子 |
用途 |
參考資料 |
---|---|---|
^ |
宣告控制代碼物件;即會自動刪除此控制項的 Windows 執行階段 或 CLR 物件的指標,在無法再使用。 |
|
% |
宣告追蹤參考;即會自動刪除此控制項的 Windows 執行階段 或 CLR 物件的參考時,就無法再使用。 |
其他建構與相關主題
本節列出其他程式設計與 CLR 建構和主題。
主題 |
描述 |
---|---|
(Windows 執行階段 和 CLR) 可以使用關鍵字做為識別項。 |
|
Windows 執行階段 CLR (和) 可以讓函式接受引數的變數數字。 |
|
列出在 C++ 整數型別位置使用的 CLR 型別。 |
|
appdomain__declspec 修飾詞 |
命令的__declspec 修飾詞的一個靜態或全域變數每個 appdomain 存在。 |
描述 C-style 轉型的解譯方式。 |
|
呼叫慣例__clrcall |
表示 CLR 標準呼叫慣例。 |
__cplusplus_cli |
|
描述如何定義您自己的 CLR 屬性。 |
|
提供例外狀況處理的概觀。 |
|
示範成員函式如何覆寫選擇性成員。 |
|
討論組件可以存取所有的用戶端如何輸入組件的元件。 |
|
示範實值型別的 boxed 條件。 |
|
討論如何偵測型別的特性在編譯時期。 |
|
managed, unmanaged Pragma |
示範 Managed 和 Unmanaged 函式如何在同一模組可以同時存在。 |
process__declspec 修飾詞 |
命令的__declspec 修飾詞的一個靜態或全域變數每個處理序存在。 |
示範執行階段型別資訊的 CLR 版本。 |
|
討論編譯器字串常值轉換成 String。 |
|
啟用一個型別的動作在傳輸組件的另一個組件,讓用戶端程式碼就不需要重新編譯。 |
|
示範使用者定義的屬性。 |
|
匯入外部組件。 |
|
您可以使用 /doc (處理文件註解) (C/C++), Explains XML 根據程式碼文件 |