コンパイラ エラー C3379
'class': 入れ子になったクラスに宣言の一部としてアセンブリ アクセス指定子を含めることはできません。
クラスや構造体などのマネージド型に適用される場合、public キーワードと private キーワードはクラスがアセンブリ メタデータを通じて公開されるかどうかを示します。 public
または private
は、入れ子になったクラスには適用できません。入れ子になったクラスは、囲んでいるクラスのアセンブリ アクセスを継承します。
/clr と一緒に使用すると、ref
および value
キーワードは、クラスがマネージドであることを示します (「クラスと構造体」を参照)。
次の例では 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);
}