C++ 고급 문법 (24) — RTTI(Run-Time Type Information)

기반 클래스 포인터만 들고 있는데 실제 객체가 어떤 타입인지 알아야 할 때가 있다. 이벤트 큐에서 꺼낸 객체를 타입별 핸들러로 보내거나, 특정 파생 타입에만 있는 기능을 쓰는 경우다. C++은 실행 시점…

Continue ReadingC++ 고급 문법 (24) — RTTI(Run-Time Type Information)

C++ 고급 문법 (18) — 업캐스팅(Upcasting)

파생 클래스 객체를 기반 클래스의 포인터나 참조로 다루는 것을 업캐스팅(upcasting)이라 한다. public 상속이면 캐스트 없이 암시적으로 일어나고, 다형성은 이 변환을 전제로 동작한다. 하지만 같은 업캐스팅이라도 포인터·참조가 아니라 값으로 일어나면 파생…

Continue ReadingC++ 고급 문법 (18) — 업캐스팅(Upcasting)

C++ 고급 문법 (6) — 명시적 캐스팅(Explicit Casting)

C 스타일 캐스트 (T)x는 무엇이든 통과시킨다. const를 떼는 것도, 전혀 관계없는 타입의 포인터로 바꾸는 것도 경고 없이 한 줄에 끝난다. 다중 상속이나 불완전 타입이 섞이면 같은 문법이 상황에 따라 다른…

Continue ReadingC++ 고급 문법 (6) — 명시적 캐스팅(Explicit Casting)