프로그래밍 13

C++ 이야기 - [2] 캐스트 연산자 dynamic_cast

C++의 4가지 캐스트 연산자에 대한 이야기 중 두 번째다. 이번은 그중에서 dynamic_cast 에 대해서 이야기한다. dynamic_cast 는 상속 관계 안에서 포인터나 참조자의 타입을 기본 클래스에서 파생 클래스로의 다운 캐스팅과 다중 상속에서 기본 클래스 간의 안전한 타입 캐스팅에 사용된다. 안전한 타입 캐스팅이란 런타임에 타입 검사를 한다는 것이며 아래에 조금 더 자세하게 나온다. const_cast와 같이 다른 용도로는 사용하지 못하며 용도가 명확하다. 참고로 dynamic_cast 를 사용하려면 기본적으로 다형성은 이해를 하고 있어야 하며 RTTI도 이해하고 있다면 이 글을 볼 필요가 없을 것이다. 객체가 위치한 메모리의 시작부분을 찾는 데도 사용된다는데 사용해 본 적이 없다. 객체를 v..

Dev 2007.10.09

C++ 이야기 - [1] 캐스트 연산자 const_cast

C++의 4가지 캐스트 연산자에 대한 이야기다. 이번은 그중에서 const_cast 에 대해서 이야기한다. 나머지도 각각 한 번에 하나씩 적어보도록 하겠다. const_cast 는 포인터 또는 참조형의 상수성(const)을 제거하는 데 사용된다. 다른 용도로는 사용하지 못하며 다른 캐스트 연산자는 상수성을 제거할 수 없다. 이렇게 정해진 용도가 명확한 것이 C++ 캐스트 연산자의 특징 중 하나다. 용도가 명확한 만큼 별도의 주석 없이 코드만으로 작성자의 의도가 쉽게 파악된다. volatile 한정자를 제거하는 데도 사용된다고 하는데 사용해본 적이 없다. 특정 스레드나 루프에서 휘발성을 제거하여 컴파일러에게 최적화를 해도 된다고 알려주는 정도로 사용할 듯싶다. - const_cast 사용 [예제 1] co..

Dev 2007.10.04

조급함에 코딩을 한다면...

코딩할 단계가 아님을 알면서 코딩을 할 때는 개발자가 불안한 상태일 수 있다. 코드에서 한발 물러서서 구조를 파악하고 흐름을 잡아내는 것은 조급한 마음에 할 수 있는 일이 아니다. 현재 방향을 잡지 못하고 조급한 마음에 코드에 집착할 수 있다. 자잘한 코드 수정과 디버깅이 급한 게 아님을 알면서 잠시 어딘가 집중을 하기 위해 코드에 집착을 보일 때가 있다. 요즈음의 내가 그런다..-_ㅡ;

Dev 2006.03.07
반응형