Klassendefinitionen

Wie wir schon in Kapitel 12 kennengelernt haben ist das Grundgerüst einer Klassendeklaration wie folgt:

  class grafikobjekt
  {
    private:
      int xpos;
      int ypos;
    public:
      grafikobjekt();
      grafikobjekt(int x, int y) : xpos(x), ypos(y) {};
      ~grafikobjekt();
      virtual void zeichne() = 0;  
      virtual void loesche() = 0;
      void setPos(int x, int y) {xpos = x; ypos = y;};
      void verschiebe(int x, int y);
  };

Die Unterscheidung in private und public-Definitionen dient der Verkapselung der Daten. Innerhalb eines Objektes können die Elementfunktionen auf alle Daten (sowohl private als auch public) zugreifen. Andere Objekte derselben Klasse oder gar Objekte anderer Klassen sowie allgemeine Funktionen haben kein Zugriffsrecht auf die private-Elemente und -Methoden. Auf public-Elemente und -Methoden können hingegegen alle Funktionen und Methoden zugreifen und diese verändern.

  grafikobjekt P(17, 4);          

P.xpos = 5; // Fehler! xpos ist private P.setPos(5, 7) // ok!