这种奇怪的语法是什么意思

时间:2011-02-16 11:15:41

标签: visual-studio syntax c++-cli

今天我看到了以下语法。任何人都可以告诉我这个意思:

System::ComponentModel::Container ^components; 

在使用向导创建服务之后,我在Visual C ++中获得了此代码。

3 个答案:

答案 0 :(得分:7)

^运算符(不要与二进制XOR运算符混淆)特定于C ++ / CLI。

它用于声明.NET托管对象的句柄。

句柄是对象的引用,它与传统的C ++指针不同,它允许垃圾收集对引用的对象正常运行,从而不需要手动删除对象。

此语法取代托管C ++扩展“__gc指针。

可在此处找到更多详细信息:http://en.wikipedia.org/wiki/C%2B%2B/CLI

答案 1 :(得分:4)

它是C ++ / CLI句柄。 C ++ / CLI是Microsoft对C ++的托管扩展,以提供与.NET CLR的兼容性。

Read here a little bit more about C++/CLI

答案 2 :(得分:1)

这是托管C ++,它不是C ++。

该行定义了一个变量组件,它是一个托管指向System :: ComponentModel :: Container的指针