DNF LOVE

c++의 형변환(Typecasting) 몇 가지(reinterpret_cast, static_cast) 본문

Programming/C++

c++의 형변환(Typecasting) 몇 가지(reinterpret_cast, static_cast)

botho 2019. 10. 23. 16:04
반응형

1. const 속성 제거

const int value = 10;
int index = const_cast<int> (value);

 


 

2. reinterpret_cast - 강제 형변환

포인터를 정수로 변환하는 작업을 사용할 때 쓰는 캐스트 함수이다.

int main(void)
{
	int a = 10;

	int c = reinterpret_cast<int>(&a);

	return 0;
}

 


 

3. static_cast - 명시적인 형변환이다. 가장 많이 사용되는 형변환.

1) float -> int

int main(void)
{
	float f = 10.0f;
	int a;
	a = static_cast<int>(f);

	cout << a;

	return 0;
}

2) int -> float

int main(void)
{
	float f;
	int a = 10;
	f = static_cast<int>(a);

	cout << f;

	return 0;
}

3) double -> char

int main(void)
{
	double d = 10.0;
	char c = static_cast<char>(d);

	cout << c;

	return 0;
}

4) char -> double

int main(void)
{
	double d;
	char c = 'a';

	d = static_cast<double>(c);

	cout << d;

	return 0;
}

 


 

4. dynamic_cast : 서로 상속 관계에 있는 클래스 간에 형변환을 할 때 사용한다.

반응형