privat (C++)
private:
[member-list]
private base-class
Hinweise
Wenn es eine Liste von Klassenmembern vorangestellt ist, gibt das private-Schlüsselwort an, dass diese Member nur über Memberfunktionen und von Freunden der Klasse zugegriffen werden kann.Dies gilt für alle Member, die bis zum nächsten Zugriffsspezifizierer oder am Ende der Klasse deklariert werden.
Wenn dem Namen einer Basisklasse vorangestellt ist, gibt das private-Schlüsselwort an, dass die öffentliche und geschützte Member der Basisklasse private Member abgeleiteter Klassen sind.
standardmäßigen Zugriff von Membern einer Klasse ist privat.standardmäßigen Zugriff von Membern in einer Struktur oder Union ist öffentlich.
standardmäßigen Zugriff auf eine Basisklasse für Klassen und Strukturen für public privat.Unions können Basisklassen aufweisen.
Weitere Informationen finden Sie unter friend, Öffentlich, geschütztund Member ACCESS-Tabelle in Steuern des Zugriffs auf Klassenmember.
bestimmte /clr-
In CLR-Typen können die C++-Zugriffsspezifizierer Schlüsselwörter (Öffentlich, privateprotected) und die Sichtbarkeit von Typen und Methoden hinsichtlich der Assembly beeinträchtigen.Weitere Informationen finden Sie unter Typ-und Member-Sichtbarkeit.
Hinweis |
---|
Die Dateien, die mit /LN kompiliert werden, sich nicht auf dieses Verhalten beeinflusst.In diesem Fall sind alle verwalteten Klassen (entweder öffentlich oder privat) angezeigt. |
Beispiel
// keyword_private.cpp
class BaseClass {
public:
// privMem accessible from member function
int pubFunc() { return privMem; }
private:
void privMem;
};
class DerivedClass : public BaseClass {
public:
void usePrivate( int i )
{ privMem = i; } // C2248: privMem not accessible
// from derived class
};
class DerivedClass2 : private BaseClass {
public:
// pubFunc() accessible from derived class
int usePublic() { return pubFunc(); }
};
int main() {
BaseClass aBase;
DerivedClass aDerived;
DerivedClass2 aDerived2;
aBase.privMem = 1; // C2248: privMem not accessible
aDerived.privMem = 1; // C2248: privMem not accessible
// in derived class
aDerived2.pubFunc(); // C2247: pubFunc() is private in
// derived class
}