编译器错误 C2726

“gcnew”只能用于创建具有托管或 WinRT 类型的对象

不能在垃圾回收堆上创建本机类型的实例。

下面的示例生成 C2726,并演示如何修复此错误:

// C2726.cpp
// compile with: /clr
using namespace System;
class U {};
ref class V {};
value class W {};

int main() {
   U* pU = gcnew U;    // C2726
   U* pU2 = new U;   // OK
   V^ p2 = gcnew V;   // OK
   W p3;   // OK

}