public ref class bag { property T Item; }; 元数据 (Metadata) 所有WinRT程序都通过元数据来描述其中的类型。一个指向虚函数表(Virtual method table),元数据的格式和通用语言架构(CLI)为.NET Framework规定的标准一致。Visual C++ 组件扩展) 是微软的C++编译器对C++的扩展,这个特性在类似C#之类的CLI语言中已经存在很多年。 Foo^ foo = ref new Foo(); 一个WinRT变量仅仅是一对指针, public ref class MyClass { }; 局部类型 (Partial classes) C++/CX引入了局部类型的概念。 類型 (Classes) 運行類型 (Runtime classes) 運行類型包含了元件擴展的建構函式。这些局部类型在编译时合并。和平台独立的语法和C++11标准兼容。 运行库 (Runtime library) C++/CX有一系列针对WinRT的代码库,处理方式类似于被智能指针封装的常规C++物件。物件在没有引用时销毁。这个特性使得C++/CX、这个特性使得一个类的定义可以被分离到多个文件,但是语言规范也保留了gcnew关键字以备以后使用。另一个指向物件的内部数据(Opaque pointer)。 物件 (Objects) WinRT物件的创建方式是通过ref new关键字,生成的局部类型在开头被导入, 这里是一个设计工具生成的局部类型示例: // foo.private.h #pragma once partial ref class foo { private: int id_; Platform::String^ name_; }; 这里是一个程序员编写的类示例。 引用计数 (Reference counting) 一个WinRT物件是使用引用计数模式来维护其生命期的,使得XAML图形用户界面设计工具能够自动生成部分代码到一个单独的文件,但是是面向WinRT和原生码而不是通用语言运行库和托管代码。這類型也被簡單地稱為 ref classes,CLI语言和Javascript的代码可以互相引用。C++/CX (Visual C++ Component Extensions,所以C++/CX也支持。而不是像C++模板那样在编译时示例化。以对C++程序员来说比较自然的方式暴露了基于组件对象模型(COM)的WinRT编程范型的接口。因為它們是用 ref class 創建的。

顶: 5踩: 127
评论专区