Welchen operator ueberladen?
-
Bei einem Standard typ kann ich ja folgendes machen:
int i = 3; if(i) //wahr else //falsch
Gibt es dafuer auch einen operator den man ueberladen muss um soetwas bei einer selbstgeschrieben klasse zu machen? Also so in der art:
MeineKlasse i; if(i) ...
Oder geht das nicht?
-
für cin geht das, also muss es für deine klasse auch gehen, aber keine ahnung wie..
-
operator bool musst du überladen.
-
operator bool()?!?
edit: zu spät!
-
Lieber nicht. Dank der allgegenwärtigen impliziten Konvertierungen (brrr) geht dann nämlich:
int x = deinObjekt;
Und das willst du meistens nicht. Dagegen gibt es das boost-SafeBool-Idiom, nach dem du mal googlen solltest.
-
Oder operator ! überladen und dann
if(!i) //falsch else //wahr
Auch möglich
if(!!i) //wahr else //falsch