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 연산자는 단항 연산자 이는 하나의 데이터 유형을 다른 데이터 유형으로 변환하도록 강제합니다.
      C++에서는 네 가지 유형의 캐스팅을 지원합니다.

      1. 정적 캐스트
      2. 다이나믹 캐스트
      3. Const Cast
      4. 캐스트를 재해석하다
        1. 예:




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

          산출:

           3 

유형 변환의 장점:

  • 이는 유형 계층 구조 또는 유형 표현의 특정 기능을 활용하기 위해 수행됩니다.
  • 다양한 데이터 유형의 변수를 포함하는 표현식을 계산하는 데 도움이 됩니다.