Verkapselung - private, protected, public

Es könnte aber nun sein, daß man zwar innerhalb der abgeleiteten Klasse gerne auf die Elemente und Methoden der Basisklasse direkt zugreifen können möchte, den Zugang aber für alle anderen Funktionen verbieten möchte. Dafür gibt es die zusätzliche Möglichkeiten Elemente als protected zu deklarieren. Alle abgeleiteten Klassen werden in die Lage versetzt auf entsprechende Elemente und Methoden zuzugreifen, anderen Objekten wird der Zugang versagt.

Eine neue Definition von grafikobjekt könnte wie folgt aussehen:

  class grafikobjekt
  {
    protected:
      int xpos;
      int ypos;
    public:
      grafikobjekt();
      // ...
  };

Ein Zugriff von außen auf xpos ist weiterhin für grafikobjekt-Variablen, und nunmehr auch für kasten-Variablen möglich. Für alle anderen bleiben diese Variablen weiterhin verborgen.