编译器错误 C2842

“class”:托管或 WinRT 类型不能定义自己的“operator new”或“operator delete”

备注

你可以定义自己的“operator new”或“operator delete”来管理原生堆上的内存分配。 但是,引用类不能定义这些运算符,因为它们仅分配在托管堆上。

有关详细信息,请参阅用户定义的运算符 (C++/CLI)

示例

以下示例生成 C2842。

// C2842.cpp
// compile with: /clr /c
ref class G {
   void* operator new( size_t nSize );   // C2842
};