Dla jasności Niech moja nowa klasa będzie:C++ - Konwersja z niestandardowych klas wbudowanemu w rodzaju
powiedzmy chcę, aby móc określić:
MyInt Three(30);
int thirty = Three;
ale w Aby uzyskać ten wynik, piszę:
MyInt Three(30);
int thirty = Three + 0;
Jak mogę uzyskać automatyczną konwersję z mojej klasy niestandardowej do typu wbudowanego?
Uwaga: to zwykle _bad idea_ mieć _both_ konwersje _implicit_ (tutaj 'int'->' MyInt' poprzez zakaz wyraźną konstruktora _i_ 'MyInt'-> 'int' za pośrednictwem operatora konwersji). (Rozważmy na przykład 'std :: string', dla którego istnieje niejawna konwersja _from_' const char * '(konwertujący konstruktor), ale nie _to_' const char * '(w tym celu musisz wywołać' .c_str() 'lub powiązane funkcje członkowskie). [Także, literówka: 'prywatny' ->' prywatny: '] –