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);
}