2011-02-16 79 views
2

今天我看到了下面的语法。谁能告诉我这是什么意思:这个奇怪的语法是什么意思

System::ComponentModel::Container ^components; 

我在Visual C++这段代码,我用了一个向导来创建服务后。

+0

的可能重复(http://stackoverflow.com/questions/202463/what-does-the-caret -mean-在-C-CLI) – 2011-02-17 13:18:00

回答

7

^操作者(未以与二进制XOR运算符相混淆)是特定于C++/CLI。

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

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

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

更多细节可以在这里找到:?什么是插入符号在C++/CLI意味着] http://en.wikipedia.org/wiki/C%2B%2B/CLI

1

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

的行定义了一个可变要素是一种管理指针系统:: ComponentModel ::集装箱