【发布时间】:2019-03-17 11:06:52
【问题描述】:
我只是偶然发现了ref newhere,我想知道gcnew 是否有区别。
代码示例here 显示了如何使用 ref new 创建托管堆上的对象句柄:
Foo^ spFoo = ref new Foo();
并使用 gcnew here
int ^ i = gcnew int(13);
那么它们在概念上是等价的吗?
【问题讨论】:
标签: c++-cli
我只是偶然发现了ref newhere,我想知道gcnew 是否有区别。
代码示例here 显示了如何使用 ref new 创建托管堆上的对象句柄:
Foo^ spFoo = ref new Foo();
并使用 gcnew here
int ^ i = gcnew int(13);
那么它们在概念上是等价的吗?
【问题讨论】:
标签: c++-cli
如果您只是对文档的布局感到困惑:
C++/CLI 用于公共语言运行时 (CLR)。
C++/CX 用于 Windows 运行时 (WinRT)。
它们足够相似,可以一起记录,但它们并不相同。
这就是为什么它们在您链接的文档中有三个标题:
对于 C++/CLI,gcnew 是您使用的。除非您使用 C++/CX,否则“Windows 运行时”部分不适用。
【讨论】:
ref new 和gcnew。现在,像 OP 这样没有使用过 C++/CLI 和 C++/CX 的编码器不会理解你确实回答了这个问题。
(C2065) ref: undeclared identifier. (C2143) syntax error: missing ; before new