Преобразование типов в C ++

Опубликовано: 3 Декабря, 2021

Приведение типа - это в основном преобразование одного типа в другой. Есть два типа преобразования типов:

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

    Пример неявного преобразования типа:

    // An example of implicit conversion
    #include <iostream>
    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;
    }
    Выход:
    х = 107
    у = а
    г = 108
    
  2. Явное преобразование типа : этот процесс также называется приведением типа и определяется пользователем. Здесь пользователь может привести результат к определенному типу данных.

    В C ++ это можно сделать двумя способами:

    • Преобразование путем присваивания: это делается путем явного определения требуемого типа перед выражением в скобках. Это также можно рассматривать как принудительное забросание.

      Синтаксис:

       (тип) выражение

      где type указывает тип данных, в который преобразуется окончательный результат.

      Пример:

      // C++ program to demonstrate
      // explicit type casting
      #include <iostream>
      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;
      }
      Выход:
      Сумма = 2
      
    • Преобразование с использованием оператора Cast: оператор Cast - это унарный оператор, который заставляет один тип данных преобразовываться в другой тип данных.
      C ++ поддерживает четыре типа приведения типов:
      1. Статическая трансляция
      2. Dynamic Cast
      3. Const Cast
      4. Переосмыслить актерский состав

          Пример:

          #include <iostream>
          using namespace std;
          int main()
          {
          float f = 3.5;
          // using cast operator
          int b = static_cast < int >(f);
          cout << b;
          }
          Выход:
          3
          

Преимущества преобразования типов:

  • Это делается для того, чтобы воспользоваться преимуществами определенных функций иерархий типов или представлений типов.
  • Это помогает вычислять выражения, содержащие переменные разных типов данных.
Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .