Поделиться через


Ошибка компилятора 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);
}