다음을 통해 공유


컴파일러 오류 C3379

'class': 중첩된 클래스는 해당 선언의 일부로 어셈블리 액세스 지정자를 가질 수 없습니다.

클래스 또는 구조체와 같은 관리되는 형식에 적용되는 경우 공용프라이빗 키워드는 클래스가 어셈블리 메타데이터를 통해 노출되는지 여부를 나타냅니다. public 또는 private 바깥쪽 클래스의 어셈블리 액세스를 상속하는 중첩 클래스에 적용할 수 없습니다.

/clr과 함께 사용할 경우 및 value 키워드는 클래스가 관리됨을 나타냅니다(클래스 및 구조체 참조).ref

다음 샘플에서는 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);
}