C++ 형 변환 - C스타일 함수/스타일 변환

진경천·2023년 10월 29일
0

C++

목록 보기
62/90

C style casting은 권장하지 않는 형 변환임.

#include <iostream>

using namespace std;

enum class Type {
	A, B, C
};

int main() {
	int i = 10;
	float& f = (float&)i; // reinterpret

	const int& j = i;
	int& k = (int&)j; // const cast

	i = (int)Type::A; // static cast	
}

위 같은 형식으로 c style casting을 구현할 수 있다.\
하지만 const casting을 예시로 들었을 때

	int& k0 = const_cast<int&>(j);

C 스타일 보다 어떠한 캐스팅인지 식별하는데에 명확하다는 장점이 있으며 다른 캐스팅도 마찬가지다.

#include <iostream>

using namespace std;

class Parent {
public:
	Parent() {
		cout << "1" << endl;
	}
	explicit Parent(int i) { cout << "2 "; }
};

int main() {
	Parent p;
	p = Parent(10);
	p = (Parent)10;
}
  • 실행 결과

    1
    2 2

    클래스의 형변환도 같이 할 수 있다.

profile
어중이떠중이

0개의 댓글