PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : OOP mit C (ohne ++)


mekakic
2008-09-25, 08:01:13
Hi,

es heißt immer, daß man mit plain C objektorientiert programmieren "kann" -- es muß nicht unbedingt sinnvoll sein, aber mich interessiert wie es ermöglich werden kann


Klassen könnte man erstmal versuchen über structs nachzubilden
Konstruktoren und Destruktoren könnten einfach funktionen sein, die mittels Makros in Richtiger Reihenfolge zu malloc/free aufgerufen werden.
private Attribute und Funktionen sind da schon schwerer, ich könnte mir vielleicht vorstellen, daß irgendein privates struct in einem separaten Modul liegt und über irgendwelche Makro Definitionen nur von dem plublic-struct der "Klasse" aus erreicht werden kann - aber ob das wirklich funktioniert weiß ich nicht.

Könnte das bis dahin schon so funktionieren? Was ist mit dem Rest - insbesondere Vererbung? Ist das auch irgendwie machbar?

danke :)

ScottManDeath
2008-09-25, 08:46:20
COM macht sowas.

HajottV
2008-09-25, 09:48:43
Hi,
Was ist mit dem Rest - insbesondere Vererbung? Ist das auch irgendwie machbar?


Kann man über einen Tabelle mit Function Pointern lösen - so wird das ja (vereinfacht dargestellt) auch in C++ gemacht. Also jedes Objekt hat einen Zeiger auf eine Tabelle mit den Methoden.

Gruß

Jörg

Gast
2008-09-25, 13:37:20
guck dir mal die gtk+ libraries an, und da insbesonders gobject.

Shink
2008-09-29, 19:00:15
Kann man den Thread nicht mal splitten?


Gute Idee.
Vererbungsdiskussion in diesen Thread ausgelagert:
http://www.forum-3dcenter.org/vbulletin/showthread.php?t=433202

Monger