Compartir a través de


Error del compilador C3379

"class": una clase anidada no puede tener un especificador de acceso al ensamblado como parte de su declaración

Cuando se aplican a un tipo administrado, como una clase o estructura, las palabras clave public y private indican si la clase se expondrá a través de los metadatos del ensamblado. No se puede aplicar public ni private a una clase anidada, que heredará el acceso a ensamblado de la clase envolvente.

Cuando se usan con /clr, las palabras clave ref y value indican que una clase es administrada (consulte Clases y estructuras).

El ejemplo siguiente genera el error 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);
}