private (C++)

Syntax

private:
   [member-list]
private base-class

Hinweise

Wenn eine Liste von Klassenmitgliedern vorangeht, gibt die private Schlüsselwort (keyword) an, dass diese Mitglieder nur über Memberfunktionen und Freunde des Kurses zugänglich sind. Dies gilt für alle Member, die bis zum nächsten Zugriffsspezifizierer oder am Ende der Klasse deklariert werden.

Vor dem Namen einer Basisklasse gibt die private Schlüsselwort (keyword) an, dass die öffentlichen und geschützten Member der Basisklasse private Member der abgeleiteten Klasse sind.

Der Standardzugriff von Membern einer Klasse ist privat. Der Standardzugriff der Member in einer Struktur oder Union ist öffentlich.

Der Standardzugriff einer Basisklasse ist bei Klassen privat und bei Strukturen öffentlich. Unions können keine Basisklassen aufweisen.

Verwandte Informationen finden Sie unter "Freund", "Öffentlich", "geschützt" und in der Tabelle "Memberzugriff" unter "Steuern des Zugriffs auf Klassenmitglieder".

"/clr"-spezifisch

In CLR-Typen kann sich der C++-Zugriffsbezeichner Schlüsselwort (keyword) (public, privateund protected) auf die Sichtbarkeit von Typen und Methoden in Bezug auf Assemblys auswirken. Weitere Informationen finden Sie unter Elementzugriffssteuerung.

Hinweis

Dateien, die mit /LN kompiliert wurden, sind von diesem Verhalten nicht betroffen. In diesem Fall werden alle verwalteten Klassen (entweder "public" oder "private") angezeigt.

"/clr"-spezifisch – Ende

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
}

Siehe auch

Steuern des Zugriffs auf Klassenmember
Schlüsselwörter