Advanced Records und überladene Operatoren

Zur Vorstellung von Komponenten und Units für Lazarus
Heinrich Wolf
Beiträge: 323
Registriert: Di 12. Apr 2011, 13:21
OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
CPU-Target: 1core 1,8GHz 32Bit
Wohnort: Fürth
Kontaktdaten:

Re: Advanced Records und überladene Operatoren

Beitrag von Heinrich Wolf »

pluto hat geschrieben:Klingt nicht schlecht. Ich habe einige male mal Operatoren überladen... kann man auch neue einfügen?
Hi

soviel ich weiß kann man nur existierende Operatoren überladen, d.h. nicht die bestehenden Verknüpfungen mit bestehenden Typen redefinieren, sondern Operationen für neue Typen mit Hilfe überladener Operatoren definieren. Neue Operatoren kann man nicht mal mit C++ definieren, und C++ ist mächtiger als Objekt Pascal, allerdings auch komplizierter.

Heiner

marcov
Beiträge: 1102
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Advanced Records und überladene Operatoren

Beitrag von marcov »

Heinrich Wolf hat geschrieben: C++ ist mächtiger als Objekt Pascal
Ist das so? Warum?

marcov
Beiträge: 1102
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Advanced Records und überladene Operatoren

Beitrag von marcov »

pluto hat geschrieben:> OS, Lazarus, FPC: Linux (L. 0.9.27, FPC 2.2.4)
^^^^^^
IEEW!

Benutzeravatar
theo
Beiträge: 10927
Registriert: Mo 11. Sep 2006, 19:01

Re: Advanced Records und überladene Operatoren

Beitrag von theo »

pluto hat geschrieben:gibt es noch mehr neue Sachen?
http://www.lazarusforum.de/viewtopic.php?p=54098#p54098" onclick="window.open(this.href);return false;

Heinrich Wolf
Beiträge: 323
Registriert: Di 12. Apr 2011, 13:21
OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
CPU-Target: 1core 1,8GHz 32Bit
Wohnort: Fürth
Kontaktdaten:

Re: Advanced Records und überladene Operatoren

Beitrag von Heinrich Wolf »

marcov hat geschrieben:
pluto hat geschrieben:> OS, Lazarus, FPC: Linux (L. 0.9.27, FPC 2.2.4)
^^^^^^
IEEW!
Was meinen Sie mit IEEW ?

Heinrich Wolf
Beiträge: 323
Registriert: Di 12. Apr 2011, 13:21
OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
CPU-Target: 1core 1,8GHz 32Bit
Wohnort: Fürth
Kontaktdaten:

Re: Advanced Records und überladene Operatoren

Beitrag von Heinrich Wolf »

marcov hat geschrieben:
Heinrich Wolf hat geschrieben: C++ ist mächtiger als Objekt Pascal
Ist das so? Warum?
Im ersten Moment fallen mir Bitfelder und Mehrfachvererbung ein. Aber ich bin nicht tief genug eingearbeitet in C++, um mehr aufzuzählen. Dafür finde ich die Erstellung von Klassen mit dynamischen Speicherfeldern zu kompliziert. Man braucht dazu mindestens 4 verschiedene Konstruktoren, damit es keine Speicherlöcher oder ungewollte Seiteneffekte gibt.

Benutzeravatar
theo
Beiträge: 10927
Registriert: Mo 11. Sep 2006, 19:01

Re: Advanced Records und überladene Operatoren

Beitrag von theo »

Heinrich Wolf hat geschrieben: Was meinen Sie mit IEEW ?
Ich glaube, er meint einfach, dass Pluto seine Signatur länger nicht bearbeitet hat, oder tatsächlich mit einer ziemlich alten Version unterwegs ist.

Patito
Beiträge: 203
Registriert: Di 22. Sep 2009, 13:08
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Advanced Records und überladene Operatoren

Beitrag von Patito »

Heinrich Wolf hat geschrieben: Im ersten Moment fallen mir Bitfelder und Mehrfachvererbung ein.
In Object Pascal hat man für den Polymorphismus die Interfaces, was solider ist als eine rein Klassen-basierte
Mehrfachvererbung (kein Diamond-Problem).
Den Hauptvorteil von C++ sehe ich eher in der solideren Sprachdefinition. Zwar schleppt C++ viel Ballast mit sich herum,
aber wenigstens kümmern sich Profis um einen Standard - im Gegensatz zu ggf. untalentierten CodeGear-Praktikanten...

Ich bin mal gespannt wohin sich Free Pascal entwickelt. Es hätte auf jeden Fall Potential C++ den Rang abzulaufen..

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Advanced Records und überladene Operatoren

Beitrag von mse »

Heinrich Wolf hat geschrieben: Im ersten Moment fallen mir Bitfelder und Mehrfachvererbung ein.
FPC hat sets, bitpacked records und interface mit oder ohne Referenzzählung.

Heinrich Wolf
Beiträge: 323
Registriert: Di 12. Apr 2011, 13:21
OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
CPU-Target: 1core 1,8GHz 32Bit
Wohnort: Fürth
Kontaktdaten:

Re: Advanced Records und überladene Operatoren

Beitrag von Heinrich Wolf »

mse hat geschrieben:
Heinrich Wolf hat geschrieben: Im ersten Moment fallen mir Bitfelder und Mehrfachvererbung ein.
FPC hat sets, bitpacked records und interface mit oder ohne Referenzzählung.
Punkt für fpc! Sets gibt's glaub ich in C++ nicht. Mit interface hab ich noch keine Erfahrung, aber in Sachen Mehrfachvererbung hab ich Hinweise auf interface gefunden. Bitpacked records kenn ich noch nicht. Da muss ich mal gurgeln.

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Advanced Records und überladene Operatoren

Beitrag von mse »


marcov
Beiträge: 1102
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Advanced Records und überladene Operatoren

Beitrag von marcov »

Heinrich Wolf hat geschrieben:
marcov hat geschrieben:
Heinrich Wolf hat geschrieben: C++ ist mächtiger als Objekt Pascal
Ist das so? Warum?
Im ersten Moment fallen mir Bitfelder
Hat FPC seit 2.4.0.
und Mehrfachvererbung ein.
Fpc hat interfaces. Fast alle neue Sprachen machen es so, weil es fast alle Fälle abdeckt, und der C++ Weg ist meistens Tot (zu kompliziert fuer wenig oder keinen additionales Nutzen)

Aber meistens sind einige Features extra kein "Mächtiger". FPC/Delphi hat so viele Features die C++ nicht hat...

Das klinkt alles ein bisschen als ein Pascal Fanatiker, aber moderne FPC/Delphi Versionen sind wirklich nicht sehr weit mehr vom C++ entfernt, wenn man nur Features zählt.

Die Unterschied liegt mehr in wie weit die Features im tägliche Praxis genutzt werden, und wie ausgereift sie implementiert sind.

Dort ist C++ für speziell templates/generics weit voran. In eben den neusten Delphi gibst generics Bugs von einen Art die es in die meisten C++ Kompiler seit vor 2000 nicht mehr gibt. Und FPC ist schlimmer (mit generics), C++ hat standarizierten und ausgereiften STL bibliotheken usw. VCL/LCL nutzt kein Interfaces (weil die schon mehr als 10 jahre alt sein)
Zuletzt geändert von marcov am Fr 27. Apr 2012, 12:01, insgesamt 1-mal geändert.

Heinrich Wolf
Beiträge: 323
Registriert: Di 12. Apr 2011, 13:21
OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
CPU-Target: 1core 1,8GHz 32Bit
Wohnort: Fürth
Kontaktdaten:

Re: Advanced Records und überladene Operatoren

Beitrag von Heinrich Wolf »

Danke! Genau den Link hab ich inzwischen auch gefunden.

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Advanced Records und überladene Operatoren

Beitrag von pluto »

Ich glaube, er meint einfach, dass Pluto seine Signatur länger nicht bearbeitet hat, oder tatsächlich mit einer ziemlich alten Version unterwegs ist.
Stimmt. Ich werde es gleich mal ändern.
Aber meistens sind einige Features extra kein "Mächtiger". FPC/Delphi hat so viele Features die C++ nicht hat...
Es wäre bestimmt nicht schlecht, wenn wir die mal besprechen würden und in einer schönen Tabellen auflisten würden... dann könnten wir immer auf diese Seite verlinken *G*.
Dort ist C++ für speziell templates/generics weit voran.
Geht aber teilweise auch in FPC.... wie weiß ich nicht, ich habe mal eine Umsetzung davon gesehen im Internet...
Punkt für fpc! Sets gibt's glaub ich in C++ nicht
Nicht? Das wäre schon "heftig"... wenn es nichts vergleichbares gibt.
In Object Pascal hat man für den Polymorphismus die Interfaces, was solider ist als eine rein Klassen-basierte
Mehrfachvererbung (kein Diamond-Problem).
Interfaces sind aber unhandlich, jedenfalls was ich gesehen habe. eine echte "Mehrfachvererbung" wäre schon "toll"....
Aber mich stört eigentlich noch was anders: Ich stolpere immer über das Problem: Überkreuzer Unit aufruft. Ich muss meine Konzepte richtig verbiegen, damit ich das umgehe.

Edit01: So Profil habe ich mal geändert... und auf den neusten Stand gebracht.
MFG
Michael Springwald

carli
Beiträge: 657
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: Advanced Records und überladene Operatoren

Beitrag von carli »

Heinrich Wolf hat geschrieben: C++ ist mächtiger als Objekt Pascal
Objekt Pascal ist Turing-Mächtig.
Was ist mächtiger? (Richtig. Nix, wenn die Churchsche These stimmt. Und wenn sie nicht stimmt, dann ist nicht C++, sondern eher unser Verstand die mächtigere Sprache)

Zur Erklärung: Die Turing-Mächtigkeit sagt aus, dass es kein Problem gibt, das man zwar mit C++ ausdrücken könnte, mit Pascal aber nicht. (Und anders herum genau so)

Antworten