C++ cli 声明或定义成员时“^”符号是什么?

C++ cli 声明或定义成员时“^”符号是什么?,c++-cli,C++ Cli,我目前正在学习一个快速教程。XOR^符号出现在一个我从未见过的地方。如果我声明一个指向某个对象的指针,星号的确切位置。 请参见下面的代码片段 COpenGL(System::Windows::Forms::Form ^ parentForm, GLsizei iWidth, GLsizei iHeight) { CreateParams^ cp = gcnew CreateParams; // Set the position

我目前正在学习一个快速教程。XOR^符号出现在一个我从未见过的地方。如果我声明一个指向某个对象的指针,星号的确切位置。 请参见下面的代码片段

COpenGL(System::Windows::Forms::Form ^ parentForm, 
            GLsizei iWidth, GLsizei iHeight)
    {
        CreateParams^ cp = gcnew CreateParams;

        // Set the position on the form
        cp->X = 100;
        cp->Y = 100;
        cp->Height = iWidth;
        cp->Width = iHeight;
之后,对象cp被解除引用,就像它是指向CreateParams类型的对象的指针一样


那么,^是什么意思?谷歌并不是太友好。

< P> C++ +CLI是与C++不同的语言。它是C++的一种扩展。关键的新特性是垃圾收集的CLI对象。类型T^表示指向此类对象的跟踪指针,该对象是使用new关键字gcnew创建的。类似地,T%表示跟踪的引用

事实上,类型系统有一个全新的部分,有一个被命名为ref class/ref struct的托管类的概念,它既有析构函数又有终结器。事实上,我曾经对这件事感到困惑,以至于我对那件事感到困惑


<> P>萨特的一个优秀的阅读。

< P> C++ +CLI是C++语言中的一种不同语言。它是C++的一种扩展。关键的新特性是垃圾收集的CLI对象。类型T^表示指向此类对象的跟踪指针,该对象是使用new关键字gcnew创建的。类似地,T%表示跟踪的引用

事实上,类型系统有一个全新的部分,有一个被命名为ref class/ref struct的托管类的概念,它既有析构函数又有终结器。事实上,我曾经对这件事感到困惑,以至于我对那件事感到困惑


一个优秀的阅读是Habor萨特的.< /P> < P>是微软扩展到C++的一部分,即C++ +CLI或C++ +CX。微软引入它来表示垃圾收集指针,用于.NET或WinRT。你可以看到C++ C++的GCNEW调用,它意味着它不是一个正常的内存分配,而是它从运行时收集的内存。

< P> ^是微软扩展到C++的一部分,即C++ +CLI或C++/CX。微软引入它来表示垃圾收集指针,用于.NET或WinRT。您可以看到gcnew调用-这意味着这不是一个正常的内存分配,而是它从运行时收集的内存。

C++/CX是一个完全不同的动物。@KerrekSB确实是,但它使用相同的^notation,尽管引擎盖下的机制有些不同。谢谢,所以指向对象的指针,通过呼叫gcnew创建,由^捐赠。干杯guys@GuyJoelMcLean是的,但请注意,重要的不仅仅是创作。它在许多方面都无法与普通的C指针相比,因为垃圾收集器跟踪它指向的内存,并在不再使用该对象时释放该内存。C++/CX是完全不同的动物。@KerrekSB确实是,但它使用相同的^符号,尽管引擎盖下的机制有些不同。谢谢,因此,通过调用gcnew创建的对象指针由^提供。干杯guys@GuyJoelMcLean是的,但请注意,重要的不仅仅是创作。它在许多方面都无法与普通C指针相比,因为垃圾收集器跟踪它指向的内存,如果对象不再使用,则释放该内存。