Impliciete Typeconversie
Veeg om het menu te tonen
Typeconversie vindt voortdurend plaats. Dit kan een impliciete conversie zijn die automatisch door de compiler wordt uitgevoerd. Of een expliciete conversie, waarbij je de types expliciet converteert in de code.
main.cpp
1234567#include <iostream> int main() { int num = 6.5; // Implicit type conversion std::cout << num << std::endl; }
In het voorbeeld wordt 6.5, een drijvend-kommagetal, impliciet geconverteerd naar int (dit gebeurt door het decimale gedeelte te verwijderen).
Impliciete typeconversie vindt plaats wanneer het type van een variabele niet overeenkomt met het type dat de compiler verwacht (bijvoorbeeld wanneer we een waarde toewijzen aan int, verwacht de compiler een geheel getal en zal hij een typeconversie uitvoeren als hij iets anders ontvangt).
- Rode pijlen duiden op gegevensverlies. Bijvoorbeeld, als we
floatnaarlong(ofint) converteren, verliezen we het decimale gedeelte; - Groene pijlen duiden op geen gegevensverlies. Bijvoorbeeld, we kunnen veilig
intnaarlongconverteren, en het resultaat blijft hetzelfde; - Gele pijl bij conversie van
long(ofint) naarfloat(oflong) betekent dat er soms gegevensverlies optreedt door onvoldoende precisie vanfloat(oflong).
main.cpp
1234567891011#include <iostream> #include <iomanip> int main() { int num_int = 123456789; float num_float = num_int; std::cout << std::setprecision(10); std::cout << num_float << std::endl; }
Nog een voorbeeld van impliciete typeconversie zijn de +, -, *, / bewerkingen. Deze moeten worden uitgevoerd op variabelen met hetzelfde gegevenstype. Als dit niet het geval is, voert C++ impliciet een typepromotie uit. Bijvoorbeeld, int / double -> double / double.
Een ander voorbeeld waar impliciete typeconversie voorkomt, is bij voorwaarden. Bijvoorbeeld, de if-instructie.
Deze verwacht dat de voorwaarde van het type bool is. Maar dankzij impliciete typeconversie kunnen we andere gegevenstypen als voorwaarde gebruiken. Hier is een afbeelding die laat zien hoe ze worden geconverteerd naar bool:
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.