建議使用 Visual Studio 2017

編譯器錯誤 C2814

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

'member':原生類型不可以巢狀方式置於 Managed 或 WinRT 類型 'type' 中

原生類型不可以巢狀方式置於 CLR 或 WinRT 類型中。 下列範例會產生 C2814,並示範如何修正此問題。

// C2814.cpp  
// compile with: /clr /c  
ref class A {  
   class B {};   // C2814  
   ref class C {};   // OK  
};  

使用 Managed Extensions for c + + 中,您必須明確指定 「 管理性質 」 為內嵌類型,使用下列關鍵字︰ __gc__nogc,或__value

下列範例會產生 C2814,並示範如何修正此問題。

// C2814_b.cpp  
// compile with: /clr:oldSyntax /c  
__gc class A {  
   class B {};   // C2814  
   __gc class C {};   // OK  
};  

顯示: