Visual studio *^和&;之间的主要差异是什么;在visual C中++;2010?

Visual studio *^和&;之间的主要差异是什么;在visual C中++;2010?,visual-studio,visual-c++,visual-studio-2010,pointers,c++-cli,Visual Studio,Visual C++,Visual Studio 2010,Pointers,C++ Cli,visual C++2010中的*^和&之间的主要区别是什么?^在C++/CLI中引入了托管对象引用,取代了用于本机对象指针的*符号。因此,有两种类型,托管和本机,您需要编写: class Native { }; ref class Managed { }; Native* pn = new Native(); Managed^ pm = gcnew Managed(); 本地类 { }; ref类管理 { }; 本机*pn=新本机(); 托管^pm=gcnew Managed(); &可用

visual C++2010中的
*
^
&
之间的主要区别是什么?

^在C++/CLI中引入了托管对象引用,取代了用于本机对象指针的*符号。因此,有两种类型,托管和本机,您需要编写:

class Native { }; ref class Managed { }; Native* pn = new Native(); Managed^ pm = gcnew Managed(); 本地类 { }; ref类管理 { }; 本机*pn=新本机(); 托管^pm=gcnew Managed(); &可用于从本机类实例获取本机指针。对于仅使用引用访问的托管类,它的使用方式不同

Native n; Native* pn = &n; 天然氮; 本机*pn=&n;
^在C++/CLI中为托管对象引用引入了,取代了用于本机对象指针的*符号。因此,有两种类型,托管和本机,您需要编写:

class Native { }; ref class Managed { }; Native* pn = new Native(); Managed^ pm = gcnew Managed(); 本地类 { }; ref类管理 { }; 本机*pn=新本机(); 托管^pm=gcnew Managed(); &可用于从本机类实例获取本机指针。对于仅使用引用访问的托管类,它的使用方式不同

Native n; Native* pn = &n; 天然氮; 本机*pn=&n; 你是说C++/CLI,微软设计的新的“托管C++”

  • Type*
    仍然声明本机指针
  • Type^
    声明对使用gcnew分配的对象的引用(您可以将其视为“托管对象上的指针”)
  • 类型&
    仍然声明本机引用
    • 你指的是C++/CLI,微软设计的新的“托管C++”

      • Type*
        仍然声明本机指针
      • Type^
        声明对使用gcnew分配的对象的引用(您可以将其视为“托管对象上的指针”)
      • 类型&
        仍然声明本机引用

      这有什么具体原因吗?所有这些符号的含义是在.NET C++应用程序的标准M.MyLee中定义的。2Carl Norum:bouth,请解释一元和二元之间的区别。重新标记C++/CLI,因为这实际上是关于语言中带有.NET扩展的各种“指针式”结构。这可能与VS特定的任何原因重复?所有这些符号的含义是在.NET C++应用程序的标准M.MyLee中定义的。2Carl Norum:bouth,请解释一元和二元之间的区别。重新标记C++/CLI,因为这实际上是关于语言中带有.NET扩展的各种“指针式”结构。可能重复的
      Type^
      不是引用,而是跟踪句柄
      Type%
      是对托管类型的跟踪(gc感知)引用。
      Type^
      不是引用,而是跟踪句柄
      Type%
      是对托管类型的跟踪(gc感知)引用。
      %
      在托管代码中用于获取使用基于堆栈的语义声明的托管变量的跟踪句柄,很像
      &
      在本机代码中获取堆栈变量的地址。
      %
      在托管代码中用于获取使用基于堆栈的语义声明的托管变量的跟踪句柄,很像
      &
      在本机代码中获取堆栈变量的地址。