2010-11-09 243 views
2

可能重复:
What does the caret mean in C++/CLI?在C++中'System :: String ^'是什么意思?

System::String是一类。附加脱字符是什么意思?

System::String^ productString = L""; 

有没有人见过这个?我在这张照片上找不到Stroustrop的任何东西。

+3

你找不到任何东西,因为这不是C++代码。 http://en.wikipedia.org/wiki/C%2B%2B/CLI – UncleBens 2010-11-09 15:48:16

+1

删除了C++标记,因为这不是C++。 – 2010-11-09 15:49:44

+1

C++标记丢失是为什么我以前找不到其他匹配的答案。 – Kieveli 2010-11-12 18:55:09

回答

8

这是微软C++/CLI^运算符用于访问.NET引用类型。这意味着排序“句柄”,语法是ClassName^而不是ClassName*

2

它不是一个标准的C++,它是C++/CLI其中System::String^表示System::String的句柄。

+0

否'System :: String ^'不代表对System :: String的引用。 'references'与'handles'不同。 – 2010-11-09 15:53:11

+0

@Prasoon Saurav:对 – vitaut 2010-11-09 15:56:04

5

这不是真正的C++,但C++/CLI(一个C++极为相象的语言定位的通用语言界面)

5

'System::String^'在C++中的含义是什么?

什么都没有!因为它不是C++,它的C++/CLI。 productString是句柄^""

3

此语法特定于Microsoft的托管版本C++的C++/CLI

避免这种情况,除非你绝对必须它具有与本机C++代码互操作。如果您正在编写托管代码,请使用C#本机代码C++。