C ++ / CX中^变量的含义

时间:2012-11-08 10:02:22

标签: c++ windows-runtime c++-cx

在多年缺席C#后,我刚刚回到C ++进行Windows 8 / RT的游戏相关项目。

使用生成的Game Project Skeleton我偶然发现了如下所示的方法签名。谁能告诉我^应该做什么?

Concurrency::task<Platform::Array<byte>^> ReadDataAsync(Platform::String^ filename)

3 个答案:

答案 0 :(得分:6)

在C ++ / CX中,T^T对象的句柄。它实际上是一个智能指针,拥有对指向对象的引用,以及编译器提供的一些额外奖励功能。

您可以在文章"Types That Wear Hats."

中找到有关帽子的所有信息

答案 1 :(得分:0)

显然它被称为句柄对象操作符。

  

handle-to-object操作符^被称为&#34; hat&#34;并且基本上是C ++智能指针。当最后一个帽子超出范围或显式设置为nullptr时,它指向的内存会自动销毁。

根据:https://msdn.microsoft.com/en-us/library/hh699870.aspx。 (来自&#34;内存管理&#34;该页面的部分。

答案 2 :(得分:-1)

^符号是对象的句柄。

例如String^ s;声明了一个'String'对象的句柄。

http://en.wikipedia.org/wiki/C%2B%2B/CLI#Handles