Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Impliciete Typeconversie | Overige Gegevenstypen en Concepten
C++ Gegevenstypen

bookImpliciete 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

main.cpp

copy
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 float naar long (of int) converteren, verliezen we het decimale gedeelte;
  • Groene pijlen duiden op geen gegevensverlies. Bijvoorbeeld, we kunnen veilig int naar long converteren, en het resultaat blijft hetzelfde;
  • Gele pijl bij conversie van long (of int) naar float (of long) betekent dat er soms gegevensverlies optreedt door onvoldoende precisie van float (of long).
main.cpp

main.cpp

copy
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:

question mark

Welke van de volgende toewijzingen kan leiden tot gegevensverlies door impliciete typeconversie in C++?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 6

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Sectie 4. Hoofdstuk 6
some-alt