OOP-Glossar

Basisklasse

class BASIS
{
virtuell int vfkt(int);
};

Eine Klasse, von der andere Kind-Klassen abgeleitet werden. Eine abstrakte Basisklasse enthält zwar eine Bauvorschrift, jedoch keine ausformulierten Elementfunktionen. Daher kann von einer abstrakten Basisklasse nur geerbt werden. Virtuelle Funktionen implementieren Polymorphie in C++.

Basisklassen-
Pointer

BASIS *b;
b = new KIND;
b-vfkt();

Ein Zeiger auf eine Basisklasse kann auch auf alle Kind-Klassen zeigen. Ruft ein Basisklassenpointer eine Methode auf, wird nicht die Methode der Basisklasse sondern die Methode der Kind-Klasse gerufen, wenn die Methode als virtuell deklariert war.

Bereichs-
Bezeichner

private: protected: public:

Kennzeichnet einen Bereich in der Klassendeklaration, der geschützt (gekapselt) ist oder für andere Programme zugänglich ist.

C++

Die erfolgreichste Sprache für objektorientiertes Programmieren. Programme für C++ und C können gemischt werden. Auch ohne Verwendung der Objektorientierung bereichern die Erweiterungen von C++ die Möglichkeiten von C.

Container

Datentyp (Klasse), der eine beliebige, nicht von vornherein bekannte Anzahl von Objekten aufnehmen kann. Dabei können die Objekte direkt oder indirekt (über Pointer), sortiert oder unsortiert, mit oder ohne Wiederholung gespeichert werden. Typische Container sind Listen oder Arrays.

Definition

int x;
NAME n;
int fkt(int a) {...}

Die Definition einer Variablen oder einer Funktion ist eine konkrete, verwendbare Instanz eines Typs oder einer Funktion.

Deklaration

extern int x;
struct NAME {..};
class NAME {..};
int fkt(int);

In Deklarationen werden Variablentypen oder Funktionen beschrieben. Deklarationen benötigen keinen Speicherplatz. Eine Klassenbeschreibung ist eine Deklaration.

Destruktor

class NAME
{...

~NAME();
}

Ein Destruktor ist eine Funktion, die gerufen wird, wenn der Gültigkeitsbereich eines Objekt abläuft. Bei globalen Objekten nach Ablauf von main(), bei lokalen (automatischen) Objekten nach Beendigung der Funktion, bei dynamischen Objekten bei Aufruf von delete. Eine wichtige Aufgabe des Destruktors ist das Löschen von Speicherbereichen am Heap.

Dynamische
Objekte

new
delete

Dynamische Objekte werden am Heap mit dem Operator new angelegt. Der Operator delete löscht das Objekt wieder.

Eigenschaft
(property)

class NAME
{...
int eigen;
};

Eine Variable, die innerhalb einer Klasse definiert ist, nennt man eine Eigenschaft dieser Klasse. Je nach Bereichsbezeichner (public, protected, private) kann eine Eigenschaft öffentlich zugänglich, für abgeleitete Klassen zugänglich oder gegen Zugriff geschützt sein.

Elementfunktion (Methode)

class NAME
{...
int elem(int);
};

Eine Elementfunktion oder Methode ist eine Fähigkeit die mit den Eigenschaften einer Klasse arbeitet. Je nach Bereichsbezeichner (public, protected, private) kann eine Elementfunktion öffentlich zugänglich, für abgeleitete Klassen zugänglich oder gegen Zugriff geschützt sein.

Gültigkeitsbereichzugriffsoperator

::

Mit dem neuen Operator :: (Scope Resolution Operator) kann der Speicherort einer Variablen oder Funktion durch voranstellen der Klassen oder Objektbezeichnung angegeben werden. (z.B. KLASSE::play()). Entfällt der Klassenname, erreicht man globale Größen auch dann, wenn sie durch eine gleichnamige lokale Größe verdeckt werden.

Inline-Funktion

Eine Funktion heißt Inline-Funktion, wenn sie beim Compilieren nicht durch einen Funktionsaufruf mit dem rufenden Programm verbunden wird sondern der Code direkt beim Funktionsaufruf eingefügt wird. In C++ sind alle in der Klassendeklaration definierten Funktionen automatisch Inline-Funktionen

Kapselung
(data hiding)

private, protected, public

Eigenschaft der Bereichsbezeichner protexted und private, die Zugriff auf Variablen und Funktionen von außen verhindern.

Klasse

class

Durch das Zusammenfassen von Variablen und Funktionen entsteht eine Klasse. Klassen und Strukturen (in der C++-Version)  unterscheiden sich nur durch den Grad der Öffentlichkeit: Variablen in Klassen sind nicht öffentlich, es sei denn, sie sind durch den Bereichsbezeichner public als solche gekennzeichnet worden.

Konstruktor

class NAME
NAME::NAME();

Ein Konstruktor ist eine Funktion, die im Zuge der Defintion eines Objekts gerufen wird. Ein Konstruktor hat denselben Namen wie die Klasse. Er initialisiert die Variablen der Klasse. Bei Objekten mit dynamischen Speicheranteilen initialisiert er die Variablen am Heap.

Mehrfach-Vererbung

class KIND:public E1, E2

Eine Klasse kann die Eigenschaften mehrerer Elternklassen erben.

Objekt

Die Instanz einer Klasse. Im traditionellen Programmierstil entspricht das Objekt einer Variablen, die die Bauform einer Klasse hat. Von einer Klasse können beliebig viele Objekte gebildet werden.

Polymorphie

Fähigkeit, Objekte verschiedenartiger Detaileigenschaft aber mit gleichen Methoden bearbeiten zu können. Beispiel: Bewegung verschiedener Figuren am Bildschirm mit derselben Funktion.

Struktur

struct

Zusammengehörige Variablen können unter einem eigenen Namen angesprochen werden. C++: Strukturname=Typname. Die Deklaration einer Struktur entspricht einer Typvereinbarung. In C++ können Strukturen auch Funktionen enthalten; man nennt sie dann eine Klasse. In einer Struktur sind Daten grundsätzlich öffentlich, es sei denn, sie wurden durch den Bereichsbezeichner private oder protected als geschützt gekennzeichnet.

Typ

Bauvorschrift für eine Variable. Eine Struktur ist die Bauvorschrift für eine aus mehreren Typen zusammengesetzte Anordnung. Eine Klasse definiert darüberhinaus auch einen Zugriffsschutz. (Kapselung)

Vererbung
(inheritance)

class KIND :
public ELTERN

Vererbung ermöglicht die Bildung neuer Klassen, die alle Eigenschaften einer Eltern-Klasse übernehmen können. Die Vererbung kann public oder private erfolgen. Kind-Klassen können nur auf Variablen und Funktionen in den Bereichen public und protected der Eltern-Klasse zugreifen.