Compiler Error C3628

'base class' : managed classes only support public inheritance

An attempt was made to use a managed class as a private or protected base class. A managed class can only be used as a base class with public access.

The following sample generates C3628:

// C3628a.cpp
// compile with: /clr
ref class B {
};

ref class D : private B {   // C3628

// The following line resolves the error.
// ref class D : public B {
};

int main() {
}

The following sample generates C3628:

// C3628b.cpp
// compile with: /clr:oldSyntax
#using <mscorlib.dll>
__gc class B {
};

__gc class D : B {   // C3628, private is the default access level

// The following line resolves the error.
// __gc class D : public B {
};

int main() {
}