Verwendung statischer Variablen
     - Das nun folgende Beispiel ist kurz, aber etwas kompliziert.
 
     - Wir wollen es analysieren, indem wir zuerst den Konstruktor betrachten und dann die Variable nr.
 
     - Doch lassen wir es zunächst einfach auf uns wirken:
 
  | 
     
     Bild 0-1: C++ Programm mit Konstruktor und statischer Variable nr.
 
     
     Bild 0-2: Konsolen-Ausgabe nach Aufruf.
 
 
 Beispiel konstruktor2.cpp gezipt
Der leere Konstruktor
     - Der Konstruktor-Methode in obigem Beispiel werden keine Parameter übergeben.
 
     - Ein solcher Konstruktor heißt leerer Konstruktor
 
     - In C++ entfallen beim Aufruf des leeren Konstruktors die runden Klammern.
 
     - Dass der Konstruktor tatsächlich beim Erzeugen der Objekte mit 
Zylinder kleinerZylinder, grosserZylinder; aufgerufen wird, sehen wir an der Konsolenausgabe: 
     - Das Programm verlangt erst die Eingabe der Attribute für das erste Objekt und dann die für das zweite, genauso, wie es in dem Konstruktor codiert ist.
 
  | 
Die statische Variable nr
     - Bisher hatten wir nur Objekt-Attribute und Objekt-Methoden kennengelernt.
 
     - Beispiele waren Radius und Höhe eines Zylinders, Abmessungen eines Quaders, eine Methode zur Volumenberechnung und Rückgabe etc.
 
     - All diesen Attributen und Methoden ist gemeinsam, dass jeweils etwas anderes zurückgeben, oder beinhalten, je nachdem für welches Objekt sie mit dem Punkt-Operator aufgerufen werden.
 
     - Das Volumen für Zylinder kleinerZylinder ist ein anderes, als das für grosserZylinder.
 
     - Demgemäß liefert kleinerZylinder.berechneVolumen() auch eine andere Zahl, als grosserZylinder.berechneVolumen().
 
     - Was aber macht man, wenn man eine Variable, oder eine Methode haben möchte, die für alle Instanzen (Objekte) der Klasse gleich sein soll?
 
     - In diesem Fall erzeugt man sich eine statische Methode / ein statisches Attribut.
 
  | 
     - Mit dem Attribut nr soll gespeichert werden, wieviele Objekte bisher erzeugt wurden.
 
     - Das heißt sie soll unabhängig von den erzeugten Objekte nur einmal existieren und sie soll der Klasse, nicht dessen Objekten zugehören.
 
     - Weil das so ist, kann sie nach jedem Konstruktor-Aufruf um eins erhöht werden und behält ihren Wert.
 
     - Die Syntax, um die in der Klasse deklarierte statische Variable zu initialisieren, ist in C++ etwas umständlich und erfolgt mit der Zeile 
int Zylinder::nr=0; außerhalb der Klasse. 
     - Nichtsdestotrotz ist die Variable nr keine globale Variable.
 
     - Der doppelte Doppelpunkt mit dem vorangestellten Klassennamen zeigt die Zugehörigkeit an.
 
     - Man könnte sie von der main-Methode aus dann verändern, wenn man sie in den public-Bereich der Klasse stellen würde.
 
  | 
UML-Klassendiagramm mit statischer Variable und leerem Konstruktor
     
     Bild 0-2: UML-KLassendiagramm der Klasse Zylinder mit leerem Konstruktor und statischer Variable nr.