在多年缺席C#后,我刚刚回到C ++进行Windows 8 / RT的游戏相关项目。
使用生成的Game Project Skeleton我偶然发现了如下所示的方法签名。谁能告诉我^应该做什么?
Concurrency::task<Platform::Array<byte>^> ReadDataAsync(Platform::String^ filename)
答案 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)