Welcher Operator? Oder Funktion?
-
Hey!
Ging das nicht irgendwie...
int main() { KlasseTest test; if(test) // Was wird benötigt? ; }
MfG
-
Wahrscheinlich meinst du das mit einem Zeiger.
int main() { KlasseTest* test = new KlasseTest; if(test) // Was wird benötigt? ... delete test; }EDIT:
Titel lesen wäre das nächste mal angebracht..
-
du könntest den operator bool() überladen.
class KlasseTest { public: operator bool() const { // const...je nach Fall // return true oder false } }dann kannst du so prüfen wie in deinem Code.
-
das geht mit dem
operator bool(); //reihenfolge von operator und bool beachten...
-
operator bool, warum kam mir das nicht in den Sinn... thx!
MfG
-
Benutzt man normal nicht operator void*? Da war doch was wegen Überladung von operator bool?
-
The Safe Bool Idiom erklärt die Problematik und auch ein paar Lösungen

-
Ja, die std-stream klassen nutzen void* soweit ich weiß.
-
ob man nun auf void* oder bool konvertiert, sorgt beides für probleme. zwar für verschiedene, aber aus meiner sicht sind die, die die konvertierung auf bool erzeugt, die harmloseren, da ich der meinung bin, dass man sie leichter findet. aber generell sollte man mit der konvertierungsfunktion vorsichtig sein, da sie immer verdammt viele nebeneffekte hat.
das safe bool idiom ist schon das beste, nur eben an manchen stellen auch einfach mal ein overkill.