请问在 Visual C++的 Windows Form Application 中,异或符号“^”是否有特殊的定义含义? RRS feed

  • 问题

  • 比如在建立一个Form时候,会出现一段代码 System::ComponentModel::Container ^components; 请问这里的“^”是什么含义或者起到什么作用?

    我用此方法定义了一个 “int ^ a;”没有报错。但是在命令行应用程序里如果定义“int ^ a;”则无法编译。

    2011年7月13日 20:16



  • ^ is the new keyword in C++/CLI, defining a managed object reference.


    • 已标记为答案 cycle6 2011年7月14日 16:34
    2011年7月14日 4:31
  • Thank you. Could you please explain what a "managed object reference" is ? I'm new in Visual C++, and I've never heard this before.
    2011年7月14日 16:38
  • ^是C++/CLI语法中代表跟踪托管堆上内存的句柄的语法,功能类似指针,但是跟踪句柄可以在对象被GC移动之后仍旧跟踪同一个对象。

    Visual C++的编译器支持用/clr打开C++/CLI支持。打开C++/CLI支持之后,代码文件中可以编写C++和C++/CLI代码。用#pragma managed和#pragma unmanaged可以切换C++和C++/CLI。

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    2011年7月15日 19:22
  • 非常感谢!!
    2011年7月18日 6:16