Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Implicit Type-Konvertering | Andre Datatyper og Begreber
C++ Datatyper

bookImplicit Type-Konvertering

Stryg for at vise menuen

Typekonvertering forekommer ofte. Det kan enten være implicit konvertering, som udføres automatisk af compileren, eller eksplicit konvertering, hvor typerne konverteres eksplicit i koden.

main.cpp

main.cpp

copy
1234567
#include <iostream> int main() { int num = 6.5; // Implicit type conversion std::cout << num << std::endl; }

I eksemplet konverteres 6.5, et flydende tal, implicit til int (hvilket sker ved at fjerne decimaldelen).

Implicit typekonvertering opstår, når typen af en variabel ikke matcher den type, som compileren forventer (f.eks. når der tildeles en værdi til int, forventer compileren et heltal og vil udføre en typekonvertering, hvis den modtager noget andet).

  • Røde pile angiver datatab. For eksempel, hvis vi konverterer float til long (eller int), mister vi decimaldelen;
  • Grønne pile angiver intet datatab. For eksempel kan vi sikkert konvertere int til long, og resultatet er det samme;
  • Gul pil ved konvertering fra long (eller int) til float (eller long) betyder, at der nogle gange opstår datatab på grund af utilstrækkelig præcision af float (eller 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; }

Et andet eksempel på implicit typekonvertering er operationerne +, -, *, /. Disse bør udføres på variabler med samme datatyper. Hvis det ikke er tilfældet, foretager C++ implicit typeforfremmelse. For eksempel, int / double -> double / double.

Et andet eksempel, hvor du kan støde på implicit typekonvertering, er betingelser. For eksempel if-sætningen.

Den forventer, at betingelsen er af typen bool. Men takket være implicit typekonvertering kan vi anvende andre datatyper som betingelser. Her er et billede, der viser, hvordan de konverteres til bool:

question mark

Hvilke af følgende tildelinger kan resultere i datatab på grund af implicit typekonvertering i C++?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 6

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 4. Kapitel 6
some-alt