Compilerwarnung (Stufe 1) C4678

Aktualisiert: November 2007

Fehlermeldung

Basisklasse 'base_type' hat eine stärkere Zugriffsbeschränkung als 'derived_type'
base class 'base_type' is less accessible than 'derived_type'

Ein öffentlicher Typ wurde von einem privaten Typ abgeleitet. Wenn der öffentliche Typ in einer referenzierten Assembly instanziiert wird, sind die Member des privaten Basistyps nicht zugänglich.

C4678 ist nur mit /clr:oldSyntax erreichbar. Bei Verwendung von /clr stellt eine stärkere Beschränkung auf der Basisklasse im Vergleich zur abgeleiteten Klasse einen Fehler dar.

Im folgenden Beispiel wird C4678 generiert:

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

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