W tym tutorialu nauczymy się podstaw konwersji typów C ++ na przykładach.
C ++ pozwala nam konwertować dane jednego typu na inne. Jest to znane jako konwersja typu.
Istnieją dwa typy konwersji typów w C ++.
- Niejawna konwersja
- Jawna konwersja (znana również jako rzutowanie typu)
Niejawna konwersja typów
Konwersja typów wykonywana automatycznie przez kompilator jest znana jako niejawna konwersja typów. Ten typ konwersji jest również nazywany konwersją automatyczną.
Spójrzmy na dwa przykłady niejawnej konwersji typów.
Przykład 1: Konwersja z int na double
// Working of implicit type-conversion #include using namespace std; int main() ( // assigning an int value to num_int int num_int = 9; // declaring a double type variable double num_double; // implicit conversion // assigning int value to a double variable num_double = num_int; cout << "num_int = " << num_int << endl; cout << "num_double = " << num_double << endl; return 0; )
Wynik
num_int = 9 num_double = 9
W programie przypisaliśmy int
dane do double
zmiennej.
num_double = num_int;
W tym przypadku int
wartość jest automatycznie konwertowana double
przez kompilator, zanim zostanie przypisana do zmiennej num_double. To jest przykład niejawnej konwersji typu.
Przykład 2: Automatyczna konwersja z double na int
//Working of Implicit type-conversion #include using namespace std; int main() ( int num_int; double num_double = 9.99; // implicit conversion // assigning a double value to an int variable num_int = num_double; cout << "num_int = " << num_int << endl; cout << "num_double = " << num_double << endl; return 0; )
Wynik
num_int = 9 num_double = 9,99
W programie przypisaliśmy double
dane do int
zmiennej.
num_double = num_int;
W tym przypadku double
wartość jest automatycznie konwertowana int
przez kompilator, zanim zostanie przypisana do zmiennej num_int. Jest to również przykład niejawnej konwersji typu.
Uwaga: Ponieważ int
nie może mieć części dziesiętnej, w powyższym przykładzie cyfry po przecinku są obcinane.
Utrata danych podczas konwersji (zawężanie konwersji)
Jak widzieliśmy na powyższym przykładzie, konwersja z jednego typu danych na inny jest podatna na utratę danych. Dzieje się tak, gdy dane większego typu są konwertowane na dane mniejszego typu.

Jawna konwersja w C ++
Gdy użytkownik ręcznie zmienia dane z jednego typu na inny, nazywa się to jawną konwersją . Ten typ konwersji jest również znany jako odlewanie typu .
Istnieją trzy główne sposoby wykorzystania jawnej konwersji w C ++. Oni są:
- Odlewanie typu C (znane również jako notacja odlewów )
- Notacja funkcji (znana również jako rzutowanie typu starego stylu C ++ )
- Operatory konwersji typów
Odlewanie typu C.
Jak sama nazwa wskazuje, ten rodzaj odlewu jest faworyzowany przez język programowania C . Jest również znany jako notacja odlewana .
Składnia tego stylu to:
(data_type)expression;
Na przykład,
// initializing int variable int num_int = 26; // declaring double variable double num_double; // converting from int to double num_double = (double)num_int;
Odlewanie w stylu funkcji
Możemy również użyć funkcji, takiej jak notacja, do rzutowania danych z jednego typu na inny.
Składnia tego stylu to:
data_type(expression);
Na przykład,
// initializing int variable int num_int = 26; // declaring double variable double num_double; // converting from int to double num_double = double(num_int);
Przykład 3: Rzutowanie typów
#include using namespace std; int main() ( // initializing a double variable double num_double = 3.56; cout << "num_double = " << num_double << endl; // C-style conversion from double to int int num_int1 = (int)num_double; cout << "num_int1 = " << num_int1 << endl; // function-style conversion from double to int int num_int2 = int(num_double); cout << "num_int2 = " << num_int2 << endl; return 0; )
Wynik
num_double = 3,56 num_int1 = 3 num_int2 = 3
Użyliśmy zarówno konwersji typu w stylu C, jak i rzutowania stylu funkcji do konwersji typu i wyświetliliśmy wyniki. Ponieważ wykonują to samo zadanie, oba dają nam ten sam wynik.
Operatory konwersji typów
Oprócz tych dwóch rzutów typów C ++ ma również cztery operatory do konwersji typów. Są one znane jako operatory konwersji typów . Oni są:
static_cast
dynamic_cast
const_cast
reinterpret_cast
Dowiemy się o tych rzutach w późniejszych tutorialach.
Zalecane samouczki:
- Ciąg w C ++ na int i odwrotnie
- Ciąg w C ++ do float, double i odwrotnie