Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Explicit Typkonvertering | Andra Datatyper och Koncept
Practice
Projects
Quizzes & Challenges
Frågesporter
Challenges
/
C++-Datatyper

bookExplicit Typkonvertering

Svep för att visa menyn

Om du arbetar med variabler av typen int, snarare än bara tal i koden, behöver du konvertera värdet av en variabel till double eller float. Detta kan göras med följande syntax:

main.cpp

main.cpp

copy
12345678910
#include <iostream> int main() { int num1 = 9; int num2 = 4; std::cout << "No conversion: " << num1 / num2 << std::endl; std::cout << "With conversion: " << (double)num1 / num2 << std::endl; }

Det finns flera sätt att uttryckligen utföra typkonvertering. Detta kallas C-stil konvertering:

main.cpp

main.cpp

copy
123456789101112
#include <iostream> int main() { float num = 6.5; std::cout << (int)num << std::endl; // 6.5 to `int` is 6 std::cout << (bool)num << std::endl; // 6.5 to `bool` is true // Or std::cout << int(num) << std::endl; // 6.5 to `int` is 6 std::cout << bool(num) << std::endl; // 6.5 to `bool` is true }

Även om detta tillvägagångssätt är kortfattat, visar det inte tydligt avsikten eller typen av konvertering, vilket kan leda till oklarheter och potentiell felanvändning.

Det finns mer explicita och säkrare typomvandlingsoperatorer som ger bättre kontroll över typkonverteringar.

För det mesta behöver du endast en static_conversion. Vi kommer inte att gå in på andra typomvandlingar i detalj. Här är syntaxen:

main.cpp

main.cpp

copy
12345678
#include <iostream> int main() { float num = 6.5; std::cout << static_cast<int>(num) << std::endl; // 6.5 to `int` is 6 std::cout << static_cast<bool>(num) << std::endl; // 6.5 to `bool` is true }

Vi kommer inte att gå igenom skillnaderna mellan alla dessa. Generellt är static_cast att föredra eftersom det är mer restriktivt och kan förhindra oväntat beteende med komplexa datatyper.

question mark

Välj alla korrekta sätt att utföra typomvandling.

Select all correct answers

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 7

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Avsnitt 4. Kapitel 7
some-alt