유형 캐스트는 기본적으로 한 유형에서 다른 유형으로의 변환입니다. 유형 변환에는 두 가지 유형이 있습니다.
- 암시적 유형 변환 '자동 유형 변환'이라고도 합니다.
- 사용자의 외부 트리거 없이 컴파일러가 자체적으로 수행합니다.
- 일반적으로 표현식에 둘 이상의 데이터 유형이 있을 때 발생합니다. 이러한 조건에서는 데이터 손실을 방지하기 위해 유형 변환(유형 승격)이 발생합니다.
- 변수의 모든 데이터 유형은 가장 큰 데이터 유형을 가진 변수의 데이터 유형으로 업그레이드됩니다.
bool ->char -> short int -> int -> unsigned int -> long -> unsigned -> long long -> float -> double -> long double>
- 암시적 변환으로 인해 정보가 손실될 수 있고, 부호가 손실될 수 있으며(signed가 암시적으로 unsigned로 변환되는 경우) 오버플로가 발생할 수 있습니다(long long이 암시적으로 float로 변환되는 경우).
- 과제로 변환: 이는 괄호 안의 표현식 앞에 필요한 유형을 명시적으로 정의하여 수행됩니다. 이것도 강제 캐스팅이라고 볼 수 있다.
통사론:
(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;>}>>
char 및 int 자바
>
산출:Sum = 2>
- Cast 연산자를 사용한 변환: Cast 연산자는 단항 연산자 이는 하나의 데이터 유형을 다른 데이터 유형으로 변환하도록 강제합니다.
C++에서는 네 가지 유형의 캐스팅을 지원합니다.- 정적 캐스트
- 다이나믹 캐스트
- Const Cast
- 캐스트를 재해석하다
예:
#include>using>namespace>std;>int>main()>{>>float>f = 3.5;>>>// using cast operator>>int>b =>static_cast><>int>>(에프);>>>cout << b;>}>>
>
산출:3>
유형 암시적 변환의 예:
CSS 중앙 버튼
// 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++에서는 다음 두 가지 방법으로 수행할 수 있습니다.
유형 변환의 장점:
- 이는 유형 계층 구조 또는 유형 표현의 특정 기능을 활용하기 위해 수행됩니다.
- 다양한 데이터 유형의 변수를 포함하는 표현식을 계산하는 데 도움이 됩니다.