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 de types expliciet in de code worden omgezet.
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 omgezet naar int (waarbij het decimale gedeelte wordt verwijderd).
Impliciete typeconversie vindt plaats wanneer het type van een variabele niet overeenkomt met het type dat de compiler verwacht (bijvoorbeeld wanneer een waarde aan int wordt toegekend, 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; }
Een ander 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.
Nog een voorbeeld waar impliciete typeconversie voorkomt, is bij voorwaarden. Bijvoorbeeld, de if-instructie.
Deze verwacht dat de voorwaarde van het type bool is. Dankzij impliciete typeconversie kunnen echter ook andere gegevenstypen als voorwaarde worden gebruikt. 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.