分享方式:


快速參考 (C++/CX)

Windows 執行階段支援通用 Windows 平台 (UWP) 應用程式。 應用程式只在可靠的作業系統環境中執行,使用授權的函式、資料類型及裝置,並且透過 Microsoft Store 散發。 C++/CX 可簡化 Windows 執行階段的應用程式撰寫。 本文是快速參考;如需更完整的文件,請參閱類型系統

當您在命令列上建置時,請使用 /ZW 編譯器選項來建置 UWP 應用程式或 Windows 執行階段元件。 若要存取定義於 Windows 執行階段中繼資料 (.winmd) 檔案中的 Windows 執行階段宣告,請指定 #using 指示詞或 /FU 編譯器選項。 當您建立 UWP 應用程式的專案時,Visual Studio 預設會設定這些選項,並新增所有 Windows 執行階段程式庫的參考。

快速參考

概念 標準 C++ C++/CX 備註
基本類型 C++ 基本型別。 C++/CX 基本類型,實作 Windows 執行階段中定義的基本類型。 default 命名空間包含 C++/CX 內建的基本類型。 編譯器隱含地將 C++/CX 基本類型對應至 Standard C++ 類型。

Platform 命名空間系列包含的類型實作基本 Windows 執行階段類型。
bool bool 8 位元布林值。
wchar_tchar16_t char16 表示 Unicode (UTF-16) 字碼指標的 16 位元非數值。
short

unsigned short
int16

uint16
16 位元帶正負號的整數。

16 位元不帶正負號的整數。
int

unsigned int
int

uint32
32 位元帶正負號的整數。

32 位元不帶正負號的整數。
long long -或- __int64

unsigned long long
int64

uint64
64 位元帶正負號的整數。

64 位元不帶正負號的整數。
floatdouble float32float64 32 位元或 64 位元 IEEE 754 浮點數。
enum enum class

-或-

enum struct
32 位元列舉。
(不會套用) Platform::Guid Platform 命名空間中的 128 位元非數值 (GUID)。
std::time_get Windows::Foundation::DateTime 日期時間結構。
(不會套用) Windows::Foundation::TimeSpan 時間範圍結構。
(不會套用) Platform::Object^ Windows 執行階段類型系統之 C++ 檢視中,參考計數的基本物件。
std::wstring

L"..."
Platform::String^ Platform::String^ 是 Unicode 字元之參考計數且不可變的序列,可代表文字。
Pointer 物件指標 (*):

std::shared_ptr
物件的控制代碼 (^,唸成 "hat"):

T^ identifier
所有 Windows 執行階段類別會使用物件的控制代碼修飾元來宣告。 物件的成員使用箭頭 (->) 類別成員存取運算子來存取。

Hat 修飾元表示「指向會自動計算參考的 Windows 執行階段物件」。更明確地說,物件的控制代碼宣告編譯器應該插入程式碼,以自動管理物件的參考計數,而如果參考計數變成零,則刪除物件
參考 物件的參考 (&):

T& identifier
追蹤參考 (%):

T% identifier
只有 Windows 執行階段類型才能使用追蹤參考修飾元來宣告。 物件的成員使用點 (.) 類別成員存取運算子來存取。

追蹤參考表示「參考會自動計算參考的 Windows 執行階段物件」。更精確地說,追蹤參考會宣告編譯器應該插入程式碼,以自動管理物件的參考計數。 如果參考計數為零,程式碼就會刪除物件。
動態類型宣告 new ref new 配置 Windows 執行階段物件,然後傳回該物件的控制代碼。
物件存留期管理 delete identifier

delete[] identifier
(叫用解構函式。) 留存期是由參考計數決定。 對 delete 的呼叫會叫用解構函式,但本身不會釋放記憶體。
陣列宣告 T identifier[]

std::array identifier
Array<T^>^ identifier( size )

-或-

WriteOnlyArray<T^> identifier( size )
宣告型別 T^ 的一維可修改的或唯讀陣列。 陣列本身也是參考計數物件,必須使用物件的控制代碼修飾詞來宣告。

(陣列宣告使用 Platform 命名空間中的樣板標頭類別。)
類別宣告 class identifier {}

struct identifier {}
ref class identifier {}

ref struct identifier {}
宣告具有預設 private 存取範圍的執行階段類別。

宣告具有預設 public 存取範圍的執行階段類別。
結構宣告 struct identifier {}

(亦即,一般舊資料結構 (POD))
value class identifier {}

value struct identifier {}
宣告具有預設 private 存取範圍的 POD 結構。

value class 可以在 Windows 中繼資料中表示,但 Standard C++ class 不能。

宣告具有預設 public 存取範圍的 POD 結構。

value struct 可以在 Windows 中繼資料中表示,但 Standard C++ struct 不能。
介面宣告 只包含純虛擬函式的抽象類別。 interface class identifier {}

interface struct identifier {}
宣告具有預設 private 存取範圍的介面。

宣告具有預設 public 存取範圍的介面。
Delegate std::function public delegate return-type delegate-type-identifier ( [ 參數 ] ); 宣告可以像函式呼叫一樣叫用的物件。
活動 (不會套用) event delegate-type-identifier event-identifier;

delegate-type-identifier delegate-identifier = ref new delegate-type-identifier( this [, 參數] );

event-identifier += *delegate-identifier;

-或-

EventRegistrationToken token-identifier = object.event-identifier += delegate-identifier;

-或-

auto token-identifier = object.event-identifier::add( delegate-identifier );

object.event-identifier -= token-identifier;

-或-

object.event-identifier::remove( token-identifier );
宣告 event 物件,此物件會儲存事件發生時所呼叫的事件處理常式 (委派) 集合。

建立事件處理常式。

加入事件處理常式。

加入事件處理常式會傳回事件語彙基元 (token-identifier)。 如果您想要明確移除事件處理常式,您必須儲存事件語彙基元供以後使用。

移除事件處理常式。

若要移除事件處理常式,您必須指定您在加入事件處理常式時所儲存的事件語彙基元。
屬性 (不會套用) property T identifier;

property T identifier[ index ];

property T default[ index ];
宣告存取類別或物件成員函式所使用的語法,與存取資料成員或索引陣列元素所使用的語法相同。

宣告類別或物件成員函式的屬性。

宣告物件成員函式的索引屬性。

宣告類別成員函式的索引屬性。
參數化型別 templates generic <typename T> interface class identifier {}

generic <typename T > delegate [return-type] delegate-identifier() {}
宣告參數化介面類別。

宣告參數化委派。
可為 Null 的實值型別 std::optional<T> Platform::IBox <T> 讓具有純量類型和 value 結構的變數能有 nullptr 這個值。

另請參閱

C++/CX 語言參考