Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [C++] Global operator overloading (https://www.delphipraxis.net/50085-%5Bc-%5D-global-operator-overloading.html)

Olli 20. Jul 2005 14:19


[C++] Global operator overloading
 
Moin,

eine kurze Frage bevor ich sinnlos Zeit mit Probieren verschwende. Kann ich einen Operator für die Typkonvertierung (in meinem Beispiel eine eigene Punktklasse in eine fremde und umgekehrt) innerhalb einer fremden Header-Datei deklarieren? Die also zwar die Namen der Klassen, nicht jedoch deren Definition kennt?!

Um exakt zu sein, läuft diese Frage darauf hinaus, ob ein Operator zur Typkonvertierung auch innerhalb von :: deklariert werden kann oder nur im Scope der jeweiligen Klasse von der aus konvertiert wird.

tommie-lie 20. Jul 2005 18:23

Re: [C++] Global operator overloading
 
Eigentlich müsste's schon ein
Code:
CPunktA operator=(CPunktA operand1, CPunktB operand2)
{
  // type conversion goes here
}
tun.
Sieht aber imho hässlich aus und in einem Header erst recht. :-P

Olli 20. Jul 2005 18:30

Re: [C++] Global operator overloading
 
Zitat:

Zitat von tommie-lie
Code:
CPunktA operator=(CPunktA operand1, CPunktB operand2)

Häh? ... was hast du denn für komische Typecast-Operatoren? Bei mir ist das ein Assignment-Operator ... :gruebel:

Was ich meinte, war zB sowas wie der Operator LPCTSTR von CString aus den MFC.

tommie-lie 20. Jul 2005 18:59

Re: [C++] Global operator overloading
 
Zitat:

Zitat von Olli
was hast du denn für komische Typecast-Operatoren?

Ich dachte an etwas wie
Code:
CPunktA a;
CPunktB b;

// get b from somehwere
a = b;
// do something with a now
Aber ich merke gerade, daß bei obigem Code (syntaktisch korrigiert versteht sich :zwinker:) mein gcc meckert, er will laut Fehlermeldung Zuweisungsoperatoren immer als Methode haben.

Für das Überschreiben des Typecast-Operators weiß ich nichts, außer eben deine eigene Punkt-Klasse erweitern. Oder den Compiler umschreiben, *_cast<> wird ja auch irgendwo implementiert sein ;-)

Olli 21. Jul 2005 12:38

Re: [C++] Global operator overloading
 
Zitat:

Zitat von tommie-lie
Oder den Compiler umschreiben, *_cast<> wird ja auch irgendwo implementiert sein ;-)

Nee nee nee ... ich werfe doch nicht den Disassembler an um VC zu patchen :lol: ...

Dazu gibt's ja gerade Typecast-Operatoren um sowas zu überschreiben.

Naja, die Frage hätte ich mir sparen können. Fast 24h und noch keine (zielführende!) Antwort, da probier ich es halt selber aus. Da kommen bei mir schon nur max. 5 Fragen auf 500 Posts ... und dann ist immernoch Pumpe :-\

barf00s 21. Jul 2005 12:45

Re: [C++] Global operator overloading
 
Dann solltest du diese Frage vllt mal in einem "C++" Board posten :)

Olli 21. Jul 2005 12:56

Re: [C++] Global operator overloading
 
Zitat:

Zitat von barf00s
Dann solltest du diese Frage vllt mal in einem "C++" Board posten :)

In C++-Foren habe ich andere Fragen schon probiert. Leider stelle ich a.) meine Fragen zu blöd, oder b.) sind meine Fragen zu spezifisch.

Ich nehme mal die Tatsache, daß ähnliche Fragen in C++-Foren bereits seit Monaten unbeantwortet schmoren, als Anhaltspunkt für Variante b ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:59 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