(A)b<=>A(b)b<=>A(b)
-
hallo
wenn ich mich irre waren doch doch die zeilen mit kommentaren identisch.(falls nein, dann korrigiert mich bitte)class A{ public: operator B(); } class B{} int main(){ A a; B b1=a;//////////diese B b2=(B)a;///////drei B b3=B(a);///////zeilen return 0; }
wenn das stimmt was passiert dann hier?
class A{ public: operator B();} class B{ B(A a);} int main(){ A a; B b3=B(a);////hier return 0;}
wird immer der konstruktor genommen oder sucht sich der compiler was aus?
-
/edit:
der titel soll eigendlich "(A)b<=>A(b)<=>A(b) " sein
-
hat keiner eine idee?
-
Es wird immer der Konstruktor genommen, weil da keine implizite Konvertierung nötig gibt, was als besser bewertet wird.
-
Gibt es einen Grund dafür, Konvertierungskonstruktor und -operator gleichzeitig anzubieten?