Deever
06-04-2005, 14:40
Hey Amigos, wie geht's?
Nachdem ich mich nach JAVA nun auch mit C++ näher beschäftigt habe, möchte ich deren Vorzüge in Design und Programmierung in meiner "Heimsprache" C implementieren.
Exception handling läßt sich in C sowohl unter UNIX als auch unter Windous relativ einfach mittels der Funktionen setjump() und longjmp() aus der setjump.h und Wrappermakros darum (throw() und catch()) realisiern. Ich werde meine Beispielcodes dazu posten, sobald ich wieder Zugriff darauf habe...;)
Etwas schwieriger gestaltet sich die Vererbung, da dieses Feature von einem C-Compiler nicht unterstützt wird und es sich daher vermutlich nur sehr unschön als eine Art "Laufzeitvererbung" implementieren läßt. Die Idee dahinter ist ja, daß man bestehende structs um weitere Elemente erweitert, ohne die alten structs dabei ihrerseits als Elemente in die neuen zu stecken. Hat jemand hier eine Idee, wie sich das realisieren ließe?
Zu Overloading hingegen habe ich noch keine Ideen, wie das zu realisiern wäre. Overloading bedeutet ja, daß Funktionen mit gleichen Namen (aber natürlich nicht gleichen Signaturen) zu unterschiedlichen Funktionen kompiliert werden. Als Erweiterung dessen könnte man Templates betrachten.
Vielen Dank für eure Antworten! Ich hoffe, ich habe mit diesem Post eine interessante Diskussion in Gang gesetzt!
Gruß,
/dev
Nachdem ich mich nach JAVA nun auch mit C++ näher beschäftigt habe, möchte ich deren Vorzüge in Design und Programmierung in meiner "Heimsprache" C implementieren.
Exception handling läßt sich in C sowohl unter UNIX als auch unter Windous relativ einfach mittels der Funktionen setjump() und longjmp() aus der setjump.h und Wrappermakros darum (throw() und catch()) realisiern. Ich werde meine Beispielcodes dazu posten, sobald ich wieder Zugriff darauf habe...;)
Etwas schwieriger gestaltet sich die Vererbung, da dieses Feature von einem C-Compiler nicht unterstützt wird und es sich daher vermutlich nur sehr unschön als eine Art "Laufzeitvererbung" implementieren läßt. Die Idee dahinter ist ja, daß man bestehende structs um weitere Elemente erweitert, ohne die alten structs dabei ihrerseits als Elemente in die neuen zu stecken. Hat jemand hier eine Idee, wie sich das realisieren ließe?
Zu Overloading hingegen habe ich noch keine Ideen, wie das zu realisiern wäre. Overloading bedeutet ja, daß Funktionen mit gleichen Namen (aber natürlich nicht gleichen Signaturen) zu unterschiedlichen Funktionen kompiliert werden. Als Erweiterung dessen könnte man Templates betrachten.
Vielen Dank für eure Antworten! Ich hoffe, ich habe mit diesem Post eine interessante Diskussion in Gang gesetzt!
Gruß,
/dev