Перетворення типів у C++

Приведення типу — це в основному перетворення одного типу в інший. Існує два типи перетворення типів:

    Неявне перетворення типу Також відоме як «автоматичне перетворення типу».
    • Виконується компілятором самостійно, без будь-якого зовнішнього тригера від користувача.
    • Зазвичай має місце, коли у виразі присутній більше одного типу даних. У таких умовах відбувається перетворення типу (підвищення типу), щоб уникнути втрати даних.
    • Усі типи даних змінних оновлюються до типу даних змінної з найбільшим типом даних.
       bool ->char -> short int -> int -> unsigned int -> long -> unsigned -> long long -> float -> double -> long double 
    • Під час неявних перетворень можлива втрата інформації, знаки можуть бути втрачені (коли signed неявно перетворюється на unsigned), і може статися переповнення (коли long long неявно перетворюється на float).

    Приклад неявного перетворення типу:




    // 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;> }>

    Вихід:

     x = 107 y = a z = 108 
    Явне перетворення типу: цей процес також називається приведенням типу, і його визначає користувач. Тут користувач може привести результат до певного типу даних.

    У C++ це можна зробити двома способами:

    • Перетворення за призначенням: Це робиться шляхом явного визначення необхідного типу перед виразом у дужках. Це також можна вважати силовим закиданням.

      Синтаксис:

      (type) expression 

      де типу вказує тип даних, у який перетворюється кінцевий результат.

      приклад:




      // 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;> }>

      Вихід:

       Sum = 2 
    • Перетворення за допомогою оператора Cast: Оператор Cast – це an унарний оператор який змушує один тип даних перетворюватися в інший тип даних.
      C++ підтримує чотири типи приведення:

      1. Статичний акторський склад
      2. Dynamic Cast
      3. Const Cast
      4. Переосмислити акторів
        1. приклад:




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

          Вихід:

           3 

Переваги перетворення типу:

  • Це робиться, щоб скористатися перевагами певних особливостей ієрархій типів або представлень типів.
  • Це допомагає обчислювати вирази, що містять змінні різних типів даних.