logo

Wpisz Konwersja w C++

Rzutowanie typu to w zasadzie konwersja z jednego typu na inny. Istnieją dwa typy konwersji typów:

    Niejawna konwersja typów Znana również jako „automatyczna konwersja typów”.
    • Wykonywane samodzielnie przez kompilator, bez zewnętrznego wyzwalacza ze strony użytkownika.
    • Zwykle ma to miejsce, gdy w wyrażeniu występuje więcej niż jeden typ danych. W takim przypadku następuje konwersja typu (promocja typu), aby uniknąć utraty danych.
    • Wszystkie typy danych zmiennych są uaktualniane do typu danych zmiennej o największym typie danych.
       bool ->char -> krótki int -> int -> unsigned int -> long -> unsigned -> long long -> float -> double -> long double>
    • Istnieje możliwość utraty informacji w wyniku niejawnych konwersji, utraty znaków (kiedy znak jest niejawnie konwertowany na bez znaku) i może wystąpić przepełnienie (kiedy long long jest niejawnie konwertowany na float).

    Przykład niejawnej konwersji typu:








    // An example of implicit conversion> > #include> using> namespace> std;> > int> main()> {> >int> x = 10;>// integer x> >char> y =>'a'>;>// character c> > >// y implicitly converted to int. ASCII> >// value of 'a' is 97> >x = x + y;> > >// x is implicitly converted to float> >float> z = x + 1.0;> > >cout <<>'x = '> << x << endl> ><<>'y = '> << y << endl> ><<>'z = '> << z << endl;> > >return> 0;> }>



    >

    >

    Wyjście:

     x = 107 y = a z = 108>
    Jawna konwersja typu: proces ten nazywany jest także rzutowaniem typu i jest definiowany przez użytkownika. Tutaj użytkownik może wpisać wynik, aby uzyskać określony typ danych.

    W C++ można to zrobić na dwa sposoby:

    • Konwersja według przypisania: Odbywa się to poprzez jawne zdefiniowanie wymaganego typu przed wyrażeniem w nawiasie. Można to również uznać za mocne rzucanie.

      Składnia:

      (type) expression>

      Gdzie typ wskazuje typ danych, na który konwertowany jest wynik końcowy.

      tekst zawijania css

      Przykład:




      // C++ program to demonstrate> // explicit type casting> > #include> using> namespace> std;> > int> main()> {> >double> x = 1.2;> > >// Explicit conversion from double to int> >int> sum = (>int>)x + 1;> > >cout <<>'Sum = '> << sum;> > >return> 0;> }>

      >

      >

      Wyjście:

       Sum = 2>
    • Konwersja przy użyciu operatora Cast: Operator Cast to operator jednoargumentowy co wymusza konwersję jednego typu danych na inny typ danych.
      C++ obsługuje cztery typy rzutowania:

      1. Obsada statyczna
      2. Dynamiczna obsada
      3. Obsada stała
      4. Reinterpretacja obsady
        1. Przykład:




          #include> using> namespace> std;> int> main()> {> >float> f = 3.5;> > >// using cast operator> >int> b =>static_cast><>int>>(F);> > >cout << b;> }>

          >

          >

          Wyjście:

           3>

Zalety konwersji typów:

  • Ma to na celu wykorzystanie pewnych funkcji hierarchii typów lub reprezentacji typów.
  • Pomaga obliczać wyrażenia zawierające zmienne o różnych typach danych.