7

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

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

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

3 回答 3

6

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

您可以在“戴帽子的类型”一文中找到有关帽子的所有信息。

于 2012-11-08T16:48:58.713 回答
0

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

对象句柄运算符 ^ 被称为“帽子”,基本上是 C++ 智能指针。当最后一个帽子超出范围或明确设置为 nullptr 时,它指向的内存会自动销毁。

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

于 2015-03-16T10:41:35.750 回答
-1

^符号是对象的句柄。

例如 String^ s;,声明一个“字符串”对象的句柄。

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

于 2012-11-08T10:18:09.340 回答