gcnew和ref new有什么区别

时间:2019-03-14 09:52:16

标签: c++-cli

我刚刚偶然发现unsafe here,想知道ref new是否有所不同。

代码示例here显示了如何使用ref new创建托管堆上对象的句柄:

gcnew

并使用gcnew here

Foo^ spFoo = ref new Foo();

那么它们在概念上是等效的吗?

1 个答案:

答案 0 :(得分:1)

如果您只是对文档的布局感到困惑:

C ++ / CLI用于公共语言运行时(CLR)。

C ++ / CX用于Windows运行时(WinRT)。

它们足够相似,可以一起记录,但是不一样。

这就是为什么在您链接的文档中它们具有三个标题:

  • 所有平台
  • Windows运行时
  • 公共语言运行时

对于C ++ / CLI,gcnew是您所使用的。除非您使用的是C ++ / CX,否则“ Windows运行时”部分将不适用。