Hallo,
ich interessiere mich sehr für objektorientierte Programmierung unter Delphi 5.
In C++ kann man eigene Operatoren „+,=,-,…“ für seine Klassen definieren.
Geht das unter Delphi auch (kann im Buch nichts darüber finden)?
Wenn ja, wie bzw. wo kann ich das nachlesen?
Vielen Dank,
Jan
Hi Jan,
In C++ kann man eigene Operatoren „+,=,-,…“ für seine Klassen definieren.
Geht das unter Delphi auch (kann im Buch nichts darüber finden)?
Definitive Antwort: Nein! Das Definieren eigener Operatoren „kennt“ Pascal einfach nicht, ebenso wie es z. B. auch den bei C/C++ vorhandenen „Preprozessor“ in Pascal nicht gibt.
Zweifellos braucht man das Eigene-Operatoren-Feature prinzipiell nicht, in dem Sinne, daß man „ohne“ grundsätzlich jedes Problem lösen kann, das man auch „mit“ lösen kann. Bleibt also die Frage, ob es „nützlich“ ist. Sicher mag es den Quelltext in einigen wenigen Fällen (z. B. Rechnen mit komplexen Zahlen) leichter lesbar machen, andererseits kann es aber auch viel Verwirrung stiften, denke ich. Ich hab es in Delphi bisher jedenfalls keine Sekunde lang vermißt.
Mit freundlichem Gruß
Martin
Hallo Martin,
vielen Dank.
Da will ich die Gelegenheit doch noch nutzen um noch eine Frage los zu werden.
Ich möchte objektorientiert programmieren und habe keine Lust mich in die Untiefen von C++ zu stürzen. Das mit den Operatoren ist ja kein grundsätzliches Problem. Nun wüsste ich noch gerne:
Gibt es grundsätzliche Probleme mit Delphi und OO?
Kann ich in Delphi grundsätzlich Dinge nicht machen, die ich mit C++ könnte?
Jan
Kann ich in Delphi grundsätzlich Dinge nicht machen, die ich
mit C++ könnte?
Template-Programmierung/Generisches Programmieren. Wenn Du wissen willst, ob Du sowas sinnvoll gebrauchen kannst, dann lies Dir
Veldhuizen:„Scientific C++“ durch, zu finden auf http://oonumerics.org/blitz und dann unter papers.
Ciao Lutz
Hi Jan,
Gibt es grundsätzliche Probleme mit Delphi und OO?
oh Mann, das tut schon fast weh Na gut, ich hab auchmal angefangen… Aaaaalso: Das Konzept der objektorientierten Programmierung ist in Object Pascal – so heißt die Sprache, die Delphi zugrundeliegt („Delphi“ = Produktname) – überragend konsequent und intelligent umgesetzt. Das OOP-Angebot von Delphi gilt als vorbildlich. Ich hab’ wiederholt gelesen, daß sich in gewissen Punkten sogar C++ da noch 'ne Scheibe abschneiden können soll, aber das kann ich aus eigener Erfahrung nicht bestätigen, weil ich C++ nicht genau genug kenne.
Kann ich in Delphi grundsätzlich Dinge nicht machen, die ich
mit C++ könnte?
Eindeutig nein, bis auf eine Ausnahme: Du wirst Dich schwertun, in Delphi Konstrukte zu erfinden, die so schwerverdaulich, kryptisch, verwirrend, undurchschaubar und konfus sind, daß sie niemand außer Dir verstehen kann (und Du selbst nach drei Wochen auch nicht mehr) – das geht so richtig gut nur in C und C++.
Oder um auf Deine Frage noch eine sachliche Antwort zu geben:
Den Möglichkeiten von Delphi sind keine Grenzen gesetzt. Einen Bildschirmschoner zu schreiben ist ebensowenig ein Problem, wie ein aufwendiges Spiel mit DirectX-Grafik zu schreiben, oder ein
ActiveX-Control, oder eine DLL, oder eine Anwendung, die Word über OLE-Automation ein Dokument erzeugen läßt, oder ein Programm, das Werte über die serielle Schnittstelle einliest und weiterverarbeitet, oder eins, das mit einem FTP-Server kommuniziert, oder einen Chat-Client, oder eine verteilte Datenbankapplikation.
Delphi erlaubt Dir, jede Funktion der Windows-API aufzurufen, nach der Dir der Sinn steht. Allerdings sind praktisch alle oft benötigten Sachen wie Steuerelemente zur Eingabe oder Timer oder Zeichenflächen zur Grafikausgabe bereits in fertigen, äußerst leicht handzuhabenden Komponenten gekapselt (eine „Grundausstattung“ befindet sich im Lieferumfang von Delphi, und eine Unmenge weiterer Komponenten gibt’s als Free- oder Shareware). Bei den meisten Standardanwendungen bleibst Du deshalb von der umständlichen Window-API-Programmierung vollständig verschont.
Um der Wahrheit willen sei allerdings zugegeben, daß es einige Aufgabenstellungen gibt, für deren Lösung C++ Möglichkeiten bietet, mit denen Delphi nicht dienen kann – dazu zählt das von Lutz schon genannte „generische Programmieren“ (Delphi kennt keine „Templates“). Ich denke aber, um diese Features wirklich zu „brauchen“, muß man schon einen ziemlich speziellen Grund haben. „Otto Normalprogrammierer“ braucht es höchstwahrscheinlich sein Leben lang nicht.
Mit freundlichem Gruß
Martin