Zitat von
CepheidenX:
Du programmierst objektorientiert in C?
Da frag ich mich warum man C++ eingeführt hat.
Denn immerhin ist "der Fortschritt" in C++ das man im Gegensatz zu C objektorientiert programmieren kann.
Ausserdem hast du doch selber C in die Gruppe A - Nicht-objektorientierte Sprachen mit Standardsyntax - eingeordnet.
C++ unterstützt dich beim objektorientierten Programmieren, indem es dir Schlüsselwörter wie "class" gibt, daher nenne ich es "objektorientiert". In C gibt es solche Schlüsselworter nicht, es ist jedoch möglich, in C objektorientiert zu Programmieren (es ist in jeder Sprache möglich, die dir Strukturen und Pointer zur Verfügung stellt, also auch in Turbo Pascal < 5.5). Der Datenbereich deiner Klasse ist eine Struktur. Die Methoden implementierst du als normale Funktionen, die die Struktur als Parameter bekommen. Dann kannst du Objekte erstellen und löschen:
Code:
object *o;
o = (object *)malloc(sizeof(object));
if (o)
free(o);
Die Vererbung läuft über das Aufrufen der Methoden der Elternklasse durch die Methoden der Kindklasse. Soll die Datenstruktur geändert werden, muss man gleich von Anfang an mit void-Pointern arbeiten, damit man Eltern-Methoden auch Kinder-Instanzen übergeben kann.
MfG,
d3g