On Tuesday 08 July 2003 21:13, Friedrich Hagedorn wrote:
Dumme Frage: Worin zeichnet sich denn _echte_ OOP aus? Also was ist richtige OOP und was falsche? Gibt es nicht auch in vielen Programmieraufgaben einen "sanften" Übergang von funktionaler zu OO Programmierung?
Es hat alles Vor- und Nachteile, ob Performance oder Komfort oder Korrektheit. Folgendes funktioniert z.B. mit Python oder Ruby nicht, während es mit PHP geht:
a = "DIN A" b = 4 print a + b
PHP wandelt implizit a (also $a) in eine Zahl um, was einem atoi entspricht, das ergibt 0 und damit ist das Ergebnis 4. Das kann praktisch sein, aber auch ins Auge gehen, und in diesem Fall hier ist es einfach nicht sinnvoll. Man hat aber durch Klassenableitungen die Möglichkeit, dem Objekt 4 zu sagen daß es wie ein String reagieren soll, wenn man es braucht.
Meinst du mit funktionaler Programmierung wirklich LISP, Haskell etc., oder doch eher imperative Sprachen mit Funktionen (Pascal, C, Basic)? Als jemand der von Pascal zu C++ gewechselt hat meine ich, es hätte mit gut getan mal ein Buch über C++ zu lesen; da ich mir anfangs alles nur anhand von /usr/include/g++-v2 (oder so) beigebracht hatte, ergab das erstmal jede Menge C++-Code, welcher eigentlich "C mit Objekten" war. Seit ich aber gezwungen bin mit Python oder Ruby zu schreiben, ist auch (denke ich) mein C++-Stil besser geworden.
Josef
P.S. Ich durfte gestern für jemanden eine Aufgabe aus einer Fakultät lösen, welche nicht die Informatik ist, und die ging in etwa so: "Entwerfen Sie in C++ ein strukturiertes Programm mit Unterprogrammen..."