C++
6. 형 변환
seqw
2021. 5. 20. 02:17
1.형변환
명시적 형변환
float f = 3.5f;
int i = (int)f * 3;
1. float인 f앞에 (int)를 명시해준다.
2. 요것이 명시적 형변환
묵시적 형변환
float f = 3.5f;
int i = f * 3;
1. float인 f를 말도 없이 그냥 쑤셔넣는다
2. 이것이 묵시적 형변환
---------------------
위 계산의 결과는 조금 달라진다.
1.명시적 형변환의 경우 f를 미리 int로 형변환시켜 3 * 3 이 된다.
i = 9;
2.묵시적 형변환의 경우 f를 3.5인채로 계산해서 3.5 * 3 이 된다. 그 후 소숫점을 자르는듯.
i = 10;
2.형변환 문법
0-0.위와 같이 형변환을 하는걸 C언어 스타일이라고 배움
0-1.장점과 단점이 있다고 함
장점 : 강력함
단점 : 강력해서 문제를 일으킬 수 있다함
0-2. 그렇기에 C++ 스타일의 형변환 문법이 있다고 함
1.static_cast<자료형>(변수명)
보통의 흔한 형변환과 같은 역할을 함
C스타일의 형변환은 안정성이 떨어지는데
요거슨 검사하고 안전하면 형변환을 함
2.reinterpret_cast
사용할 일 거의 없고 강제로 변환하는것에 가깝다고 함
3.const_cast
상수화를 무효처리 한다.
const int cInt = 3; //상수. 변하지 않는 수
4.dynamic_cast
상속관계에서의 형변환을 안정적으로 해준다.