728x90
#include<iostream>
using namespace std;

int main()
{
	int x = 2;
	double y = 4.4;

	int i = static_cast<int>(y / x);
	int j = int(y) / x;
	double k = y / x;

	cout << "4.4 / 2 = (static_cast<int>) " << i << endl;
	cout << "4.4 / 2 = (int) " << j << endl;
	cout << "4.4 / 2 = " << k << endl;

	return 0;
}

자료형을 변경하는 전통적인 방법은 (double) 처럼 괄호 안에 원하는 자료형을 넣어

다른 변수에 할당하는 것이었습니다. 하지만, 이런 c언어 스타일의 형변환은 아무 조건도 없이 무작정 변경하고

본다는 단점이 있습니다.

 

그래서 프로젝트 규모가 커질수록 이런 사소한 문제로 인해 발생하는 에러를 찾아내기 힘들었습니다.

이런 문제를 해결하고자 c++ 에서는 4가지 자료형 변환 연산자를 제공합니다.

 

 

  • static_cast<> : 가장 기본적인 캐스트 연산방법
  • dynamic_cast<> : 객체지향 언어의 다형성을 이용하여 모호한 타입 캐스팅 오류를 막아줌
  • const_cast<>: 자료형이 갖고 있는 상수 속성을 제거
  • reinterpret_cast<> : 어떠한 포인터 타입끼리도 변환할 수 있게 도움

 

정수형 변수와 실수형 변수 1개를 선언합니다.

 

변수 i 에 4.4 나누기 2의 결과를 저장합니다. int 는 소수점을 저장할 수 없어서 결과는 2가 됩니다.

정수와 실수 나누기의 결과는 static_cast를 통해 int 로 변환됩니다.

 

캐스팅 결과를 출력합니다.

 

 

 

728x90