This documentation is archived and is not being maintained.

Compiler Warning (level 1) C4678

base class 'base_type' is less accessible than 'derived_type'

A public type derives from a private type. If the public type is instantiated in a referenced assembly, members of the private base type will not be accessible.

C4678 is only reachable using /clr:oldSyntax. It is an error, using /clr, to have a base class that is less accessible that its derived class.

The following sample generates C4678:

// C4678.cpp
// compile with: /clr:oldSyntax /LD /W1
#using <mscorlib.dll>
private __gc struct privateG {
// try the following line instead
// public __gc struct privateG {
   int i;

public __gc struct V: public privateG {   // C4678
   int j;