Konwersje podstawowych typów
Ostatnio zmodyfikowano 2012-01-08 13:51
akwes Temat założony przez niniejszego użytkownika |
Konwersje podstawowych typów » 2012-01-08 05:26:13 Konwersje mogą być pojmowane dwojako. Np. konwersja int na char może być w dwóch wariantach: maszynowej i ludzkiej. Maszynowa z int(4) zrobi char(4) natomiast ludzka z int(4) zrobi char('4'). I chodzi mi tutaj o właśnie takie ludzkie konwersje. Chciałem sobie to rozplanować ładnie i zrobiłem tabelkę. x - ten sam typ s - przez static_cast w - wlasna funkcja w* - wlasna funkcja zwracająca typ pochodny albo tracąca część informacji W ramach robienia dziwnych rzeczy, chce sobie opracować wszystkie konwersje, nawet te niepotrzebne. Oczywiście "s" zostawię, ale chcę napisać wszystkie "w" i "w*". Przy "w*" lepiej zwracać jednak inny typ (char* zamiast char) czy tracić część informacji? Czego byście się spodziewali po funkcji FloatToChar( float ); ? Czy może zrobić obie wersje tylko że FloatToChar stratną i FloatToCharp z wskaźnikiem? Dodam że itoa itp wynalazki z c chcę ominąć :P Czy w tabelce nic nie pominąłem i czy jest poprawna? //edit no tak, zapomniałem uwzględnić jeszcze wchar_t |
|
szyx_yankez |
» 2012-01-08 10:51:59 Czy w tabelce nic nie pominąłem i czy jest poprawna? |
Własna funkcja z char na bool(i w drugą stronę)?
Czy nie wystarczy zwyczajne:
char A = 'a'; bool B = bool( A ); |
|
jsc |
» 2012-01-08 12:06:09 Nie prościej:
bool a = bool ('s');
? |
|
akwes Temat założony przez niniejszego użytkownika |
» 2012-01-08 13:17:46 nie wystarczy i nie prościej :P Bo ma być po ludzkiemu jak pisałem wyżej. Czyli dla bool a = bool( '0' ) będzie true a powinno być false. |
|
jsc |
» 2012-01-08 13:29:18 No to '/0'. |
|
akwes Temat założony przez niniejszego użytkownika |
» 2012-01-08 13:50:41 No i co z tego że null da false, jak znak '0' dalej będzie dawał true?
W ten sposób można zrobić wszystkie konwersje. Z int na char też. Będziesz miał int 9 i zmienisz go na char 9 czyli na Horizontal Tab zamiast '9'. Trochę bez sensu, nie uważasz?
Jak będziesz miał tablicę charów
{ '0', '1', '0', '0', '0', '1' }
i będziesz chciał z nich zrobić tablice bool, to Ci wszystkie wyjdą true.
Dlatego dałem że jest potrzebna własna. |
|
DejaVu |
» 2012-01-08 13:51:09 '0' = kod ascii 48. 48 != 0 => true |
|
« 1 » |