ZFX
ZFX Neu
Home
Community
Neueste Posts
Chat
FAQ
IOTW
Tutorials
Bücher
zfxCON
ZFXCE
Mathlib
ASSIMP
NES
Wir über uns
Impressum
Regeln
Suchen
Mitgliederliste
Membername:
Passwort:
Besucher:
4396177
Jetzt (Chat):
17 (0)
Mitglieder:
5239
Themen:
24223
Nachrichten:
234554
Neuestes Mitglied:
-insane-

FAQ - Frequently Asked Questions - Allgemeine Programmierung


Public, Protected, Private, Vererbung

public
Bekanntlicherweise kann auf public-Elemente von jedem Ort aus (innerhalb der Klasse, in abgeleiteten Klassen und von ausserhalb) zugegriffen werden.

private
Bei private kann nur von innerhalb der Klasse auf das Element zugegriffen werden, weder von aussem noch von anderen Klassen, die davon abgeleitet sind.

protected
Ein protected Member verhält sich wie ein private Member, mit eine Ausnahme: Abgeleitete Klassen haben Zugriff auf die protected-Elemente ihrer Basisklassen. Weiterhin kann beliebige Klasse mit dem Schlüsselwört 'friend' Zugriff auf die protected Members bekommen:
Code:
class A {
  friend class B
  protected:
    static void foo() {}
};

class B {
  B() { A::foo(); } // Nur möglich dank 'friend'
};


Wenn die Zugriffsbezeichner bei der Vererbung angegeben werden, folgt der Compiler einem ganz einfachem Schema:
  • Alle Members der Basisklasse, deren Zugriff offener ist, als der bei der Vererbung benutzte Zugriffsbezeichner, werden auf den entsprechenden Zugriffsbezeichner reduziert
  • Auf das Interface (und somit die Möglichkeit, eine Klasse auch als ihre Basisklasse betrachten zu können) kann nurnoch von einem Ort mit entsprechendem Zugriff gecastet werden.



von Cygon