![]() |
[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. |
Re: [C++] Global operator overloading
Eigentlich müsste's schon ein
Code:
tun.
CPunktA operator=(CPunktA operand1, CPunktB operand2)
{ // type conversion goes here } Sieht aber imho hässlich aus und in einem Header erst recht. :-P |
Re: [C++] Global operator overloading
Zitat:
Was ich meinte, war zB sowas wie der Operator LPCTSTR von CString aus den MFC. |
Re: [C++] Global operator overloading
Zitat:
Code:
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.
CPunktA a;
CPunktB b; // get b from somehwere a = b; // do something with a now 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 ;-) |
Re: [C++] Global operator overloading
Zitat:
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 :-\ |
Re: [C++] Global operator overloading
Dann solltest du diese Frage vllt mal in einem "C++" Board posten :)
|
Re: [C++] Global operator overloading
Zitat:
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 23:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz