Konwersja typu C ++

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 ++.

  1. Niejawna konwersja
  2. 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 intdane do doublezmiennej.

 num_double = num_int;

W tym przypadku intwartość jest automatycznie konwertowana doubleprzez 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 doubledane do intzmiennej.

 num_double = num_int;

W tym przypadku doublewartość jest automatycznie konwertowana intprzez kompilator, zanim zostanie przypisana do zmiennej num_int. Jest to również przykład niejawnej konwersji typu.

Uwaga: Ponieważ intnie 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.

Możliwa utrata danych podczas konwersji 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ą:

  1. Odlewanie typu C (znane również jako notacja odlewów )
  2. Notacja funkcji (znana również jako rzutowanie typu starego stylu C ++ )
  3. 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

Interesujące artykuły...