AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi-PRAXiS goes Hollywood ;-)

Ein Thema von Die Muhkuh · begonnen am 5. Dez 2005 · letzter Beitrag vom 20. Aug 2006
Antwort Antwort
Seite 9 von 19   « Erste     789 1011     Letzte »    
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#81

Re: Delphi-PRAXiS goes Hollywood ;-)

  Alt 11. Dez 2005, 18:37
"Dran glauben" klingt für mich gleich so, als würde man die Typenprüfung tatsächlich umgehen können. Aber intern werden die Typen ja sehrwohl beachtet.

Aber ganz klar: Man kann Beispiele konstruieren - wie ich in dem Video - bei denen die Typen längst nicht mehr so ersichtlich sind. Ohne Frage lässt sich damit auch Schabernack treiben - aber das konnten wir vorher auch schon in Delphi.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Dust Signs

Registriert seit: 28. Dez 2004
Ort: Salzburg
379 Beiträge
 
#82

Re: Delphi-PRAXiS goes Hollywood ;-)

  Alt 11. Dez 2005, 18:47
Zitat von Daniel:
aber das konnten wir vorher auch schon in Delphi.
Bisher aber nur explizit . Beispiel:

Delphi-Quellcode:
var
  a: TAuto;
  b: TBus;
  l: TLKW;
{..}
  a := (b shr 2) and (l shl 1);
Ich meine ich habe Delphi 2006 nicht, daher kann ich nicht sagen, was man alles überladen kann und was nicht.

Dust Signs
(aka AXMD in der EE)
Die Nummer, die Sie gewählt haben, ist imaginär. Bitte drehen Sie Ihr Telefon um 90° und versuchen Sie es erneut.
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#83

Re: Delphi-PRAXiS goes Hollywood ;-)

  Alt 11. Dez 2005, 18:51
Schade finde ich, dass die Implementierung der Operatorüberladung nicht wie in C# funktioniert. Dort macht man das etwa so:
Code:
int operator +(int a, int b);
Dort sieht man direkt: "Aha! Der + Operator ist gemeint", und muss nicht alle entsprechenden Bezeichnungen lernen. Wobei es da nichtmal so wirklich um das Add() geht, sondern um andere. Beispielsweise um "Implicit". Denn ich hab es mir in etwa wie in C# vorgestellt...

Finde ich etwas schade.

Ansonsten aber super Video!
Etwas kurz vielleicht, aber klasse
  Mit Zitat antworten Zitat
Dust Signs

Registriert seit: 28. Dez 2004
Ort: Salzburg
379 Beiträge
 
#84

Re: Delphi-PRAXiS goes Hollywood ;-)

  Alt 11. Dez 2005, 18:59
Zitat von malo:
Schade finde ich, dass die Implementierung der Operatorüberladung nicht wie in C# funktioniert. Dort macht man das etwa so:
Code:
int operator +(int a, int b);
Dort sieht man direkt: "Aha! Der + Operator ist gemeint", und muss nicht alle entsprechenden Bezeichnungen lernen.
Ist in C++ genau das gleiche:

Code:
blub operator+(blub a, blub b);
Dust Signs
(aka AXMD in der EE)
Die Nummer, die Sie gewählt haben, ist imaginär. Bitte drehen Sie Ihr Telefon um 90° und versuchen Sie es erneut.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#85

Re: Delphi-PRAXiS goes Hollywood ;-)

  Alt 11. Dez 2005, 20:49
Ist doch schönes Video. Gute Idee ! Aber @Malo : was willst Du mit der Operatorüberladung konkret machen ? Würde mich mal interessieren. 8)
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#86

Re: Delphi-PRAXiS goes Hollywood ;-)

  Alt 11. Dez 2005, 20:54
Zitat von Hansa:
@Malo : was willst Du mit der Operatorüberladung konkret machen ? Würde mich mal interessieren. 8)
Die Frage ist ja wohl nebensächlich, da ich überhaupt kein BDS 2006 besitze

Allerdings würde ich mit der Operatorüberladung einige Funktionsaufrufe ersparen. Funktionen durch Operatoren ersetzen etc. Das kann man natürlich mit der Delphi-Operatorüberladung auch, aber ich finde diese Variante einfach nicht so schön. Wie gesagt, die C++/C#-Variante ist die bedeutend schönere, die ich lieber in Delphi gesehen hätte
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#87

Re: Delphi-PRAXiS goes Hollywood ;-)

  Alt 11. Dez 2005, 21:03
also ich find die neuen features super
class operators sind ja wohl mal eine geile möglichkeit - gerade auf arbeit würde cih sowas sehr zu schätzen wissen. nur schade, dass wir immernoch mit delphi6 arbeiten

tja ich bin gespannt, was es sonst noch so neues gibt
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#88

Re: Delphi-PRAXiS goes Hollywood ;-)

  Alt 11. Dez 2005, 21:10
Was mich bei der Operatorüberladung gewundert hat:

Daniel, du hast zwei "implicit"-Operatoren definiert (unterschieden durch den Typ des Arguments): Was mich nun daran gewundert hat war, dass kein overload angegeben werden musste. Diese class operators sind doch im Wesentlichen sowas wie Funktionen, insofern ist es doch ein nicht unerheblicher Bruch in der Logik, wenn dort überladenden Varianten eines überladenen Operators (uff!) auch entsprechend gekennzeichnet werden müssten, wie dies auch bei Funktionen der Fall ist.

Oder kann man die Bezeichner dort neuerdings auch weglassen?
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#89

Re: Delphi-PRAXiS goes Hollywood ;-)

  Alt 11. Dez 2005, 21:27
Ich denke mal, ein Overload ist nicht nötig, weil es ja bei Operatoren grundsätzlich nur Überladungen gibt. Bei Funktionen überlädt man ja nicht zwangsläufig. Bei Operatoren schon.
Bei Funktionen muss der Compiler also unterscheiden können, ob überladen wird oder nicht. Bei Operatoren ist es ja unsinn, da halt immer überladen wird

edit: Noch was:
Was ich mir noch wünschen würde, wäre eine größere Auswahl an Operatoren, die man überladen kann
In C++ gibt es ja Operatoren wie "<<" oder ">>", oder "++", "--" etc. pp.
Das ist einiges, was ich gerne selbst überladen würde (oder deklarieren).

Dazu wäre halt aber die Überladung im C++-Stil notwendig. Aber das hab ich ja schon angesprochen...
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#90

Re: Delphi-PRAXiS goes Hollywood ;-)

  Alt 11. Dez 2005, 21:39
Zitat von malo:
Ich denke mal, ein Overload ist nicht nötig, weil es ja bei Operatoren grundsätzlich nur Überladungen gibt.
Der Begriff "Überladung" ist hier etwas zweideutig zu verstehen. Funktionen können überladen werden. Dabei nimmt eine Funktion, abhängig vom Kontext, mehrere Formen an. Der Kontext wird in dem Fall durch die Aufrufparameter bestimmt.

Bei der Operatorüberladung bestimmt sich der Kontext aus den Typen der Operanden, was man letztendes auch als das gleiche ansehen kann.


Was mir noch nicht ganz klar ist: Eine Überladung beispielsweise des Additions-Operator sieht ja so aus:

class operator add(A: Typ1; B: Typ2): Typ1; Was ist der Bezug zwischen dem Operator und der Klasse/dem Record, in dem er deklariert wird? Schließlich steht der Kontext (also die Typen der Operanden) ja in der Signatur allein, die Typzugehörigkeit scheint ja keine Rolle zu spielen.

Könnte ich dementsprechend also meinen Operator zum Addieren von zwei Vektoren innerhalb der Deklaration einer Klasse für komplexe Zahlen angeben, wenn ich als Parameter zwei Objekte vom Typ Vektor angebe?

Oder wie ist das ganze zu verstehen?
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 9 von 19   « Erste     789 1011     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz