Partager via


Erreur du compilateur C3379

'class' : une classe imbriquée ne peut pas avoir de spécificateur d’accès à l’assembly dans le cadre de sa déclaration

En cas d’application à un type managé, tel que la classe ou le struct, les mots clés publics et privés indiquent si la classe sera exposée via les métadonnées d’assembly. public ou private ne peut pas être appliqué à une classe imbriquée, qui hérite de l’accès à l’assembly de la classe englobante.

Lorsqu’elle est utilisée avec /clr, les value ref mots clés indiquent qu’une classe est gérée (consultez Classes et structs).

L’exemple suivant génère l’erreur C3379 :

// C3379a.cpp
// compile with: /clr
using namespace System;

public ref class A {
public:
   static int i = 9;

   public ref class BA {   // C3379
   // try the following line instead
   // ref class BA {
   public:
      static int ii = 8;
   };
};

int main() {

   A^ myA = gcnew A;
   Console::WriteLine(myA->i);

   A::BA^ myBA = gcnew A::BA;
   Console::WriteLine(myBA->ii);
}