반응형

Dev 76

C++ 이야기 - [5] 캐스트 연산자 정리

글의 순서가 조금 이상한가? 각 캐스트 연산자를 소개하는 글이 먼저 올라가고 각 캐스트 연산자를 세부 설명하는 글이 뒤따라 하는 게 일반적인 순서일지도 모르겠다. 그다지 큰 계획을 세우고 쓰는 게 아니다 보니 순서가 조금 이상해도 이해해주기 바란다. 이미 C++ 캐스트 연산자에 대해서 좋은 글들이 많이 나와 있지만 사용하는 사람을 쉽게 볼 수는 없었기에 조금 더 쉽게 하나씩 접근하여 글을 적어보면 도움이 될까 싶어 글을 적어본 것인데 전달이 잘 되었나 모르겠다. 잠시 C 스타일의 캐스트 연산자를 보자. (타입) 표현식 [예제 1] const char* pConstCharPtr = "test"; int* pIntPtr1 = NULL; int* pIntPtr2 = NULL; int* pIntPtr3 = NU..

Dev 2007.10.22

C++ 이야기 - [4] 캐스트 연산자 reinterpret_cast

C++의 4가지 캐스트 연산자에 대한 이야기 중 네 번째다. 이번은 그중에서 reinterpret_cast 에 대해서 이야기한다. 자...이제 C++ 캐스트 연산자의 복병이 등장한다. 이전에 static_cast 이야기를 하면서 살짝 사기를 쳤다. C 스타일의 캐스팅과 가장 비슷한 기능을 하는 무적의 캐스팅은 그 이름도 복잡한 reinterpret_cast 다. 이 캐스트 연산자는 C 스타일의 캐스팅만큼은 아니지만 별반 차이 없이 무배뽀다. 캐스팅 대상을 캐스팅 타겟 타입으로 비트단위로 다시 재해석한다고 보면 된다. 다른 캐스트 연산자가 처리하지 못하고 남은 뒤치다꺼리를 모두 한다. 다만 const_cast 의 역할인 상수성을 날린다거나 하는 등의 기능은 수행하지 못한다. - reinterpret_cas..

Dev 2007.10.20

C++ 이야기 - [3] 캐스트 연산자 static_cast

C++의 4가지 캐스트 연산자에 대한 이야기 중 세 번째다. 이번은 그중에서 static_cast 에 대해서 이야기한다. static_cast 는 기본적으로 C 스타일의 캐스팅과 가장 비슷한 기능을 한다. 물론 C 스타일의 캐스팅처럼 만능은 아니다. 4가지의 캐스트 연산자로 분리된 만큼 const_cast의 역할인 상수성을 날린다거나 하는 등의 다른 캐스트 연산자의 고유 기능은 수행하지 못한다. 다른 캐스트 연산자와 같이 static_cast 도 static_cast 만의 용도가 있다. - static_cast 사용 static_cast 를 사용하기 전에 용도와 제약 사항을 확인하자. 실수형과 정수형, 정수형과 열거형등의 기본 데이터 타입 간의 변환상속관계의 클래스 계층 간의 변환런타임 타입 검사를 하지..

Dev 2007.10.14 (2)

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

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

Dev 2007.10.09 (4)

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

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

Dev 2007.10.04

추천 공개 소프트웨어 모음

애용하는 공개 소프트웨어들을 소개한다. 모두 망설임 없이 추천할 만큼 유용하며 집/회사 어디서나 무료로 사용할 수 있는 소프트웨어다. 간단한 소개 정도밖에 없지만 소프트웨어 이름에 링크를 걸었으니 자세한 내용은 소프트웨어 이름을 클릭해보기 바란다. 간단한 리뷰정보를 원한다면 마이폴더넷과 같은 사이트를 참고 바란다. - 파일 관리 빵집 가장 좋아하는 압축 유틸리티로써 매우 간편한 사용법과 빠른 속도가 돋보인다. - 시스템 CCleaner 레지스트리 청소기능을 주로 사용하지만 불필요한 파일이나 시작 프로그램 관리 기능 등 유용한 기능을 같이 지원하며 한글도 지원한다. - 이미지 뷰어 Picasa 이미지 파일을 관리하기에 매우 편리하며 다양한 기능을 제공한다. 뷰어로 사용하기에는 너무 무겁다. ZViewerA..

Dev 2007.09.25 (4)

멋진 소프트웨어 MaxiVista

오래전부터 포스팅하리라...벌써 사용한 지 반년은 된 거 같은데... 이 책상을 좀 정리하고 깔끔한 모습의 사진을 찍어서 같이 포스팅하리라... 미루고...미루고...미루다가...계속 미루면 까먹을 거 같다 -_-;.. 결국, 그냥 사진 없이 소개만 한다... MaxiVista 라는 소프트웨어를 소개한다. 이놈은 네트웍으로 연결된 원격지에 있는 PC의 모니터를 내 PC의 확장 모니터로 만들어준다. 쉽게 말해서 내 앞에 PC와 노트북이 있다면 노트북의 LCD를 PC의 확장 모니터로 만들어준다. 아아악...말로 표현하기 어렵다. 직접 가서 사이트 메인 화면의 이미지를 보면 딱 와 닿는다. http://www.maxivista.com/ 데모 버전이 있으니 다운받아서 사용해보면 감동할 것이다. 이놈 때문에 해외..

Dev 2007.09.15

Visual Studio 2005 색상 설정

오래전에 어떤 분의 블로그에서 다운 받아 약간의 수정을 가해서 매우 잘 쓰고 있는 LCD에 쓰기 좋은 색상 설정 이다. LCD에서는 Visual Studio의 기본 설정인 하얀 바탕에 까만 글씨는..눈이 아프기 때문에 -_-; 특히 22인치 와이드로 바꾸고 나니 도저히 눈이 피곤해서 방법을 모색하다가 우연찮게 찾아진 설정인데... 트랙백을 해서 올리고 싶었으나...도저히 다시 찾을 수가 없더라... 처음에 설정 파일을 올려주신 분에게 감사하며 그 설정 파일을 여기에도 올린다. ps : 전부 다 까만색으로 사용도 해보았으나 개인적으로 저 정도가 좋더라.

Dev 2007.04.24

Nintendo DS Lite Wi-Fi 설정

USB 타입의 닌텐도 전용 무선 포트가 아닌 일반 무선 공유기를 사용하는 설정을 간략하게 적어본다. 무선 공유기 호환성 목록은 참고용으로 링크를 건다. 루리웹 게시판 무선공유기의 보안 설정을 사용하지 않는다면 설정은 간단하다. 여기서는 보안 설정을 사용하는 경우를 적는다. 여기서 사용되는 무선 공유기는 AnyGate RG-3000A 이며 다른 공유기의 설정과 명칭등이 다를지 모른다. -_-; 또한, 무선 공유기를 처음 사용해 보는 것이라 잘못된 정보가 있을 수 있다. 잘못된 내용은 알려주기 바란다. Wi-Fi를 지원하는 게임타이틀에는 Wi-Fi 혹은 WFC 메뉴가 있을 것이다. 예) 테트리스의 경우 Wi-Fi 라고 멀티플레이 바로 아래에 메뉴가 존재한다. 그 메뉴를 선택하고 들어가면 Wi-Fi Setti..

Dev 2007.03.31 (1)

목욕하며 읽은 소프트웨어 산책

임백준의 소프트웨어 산책 임백준 지음 / 한빛미디어 저자의 말대로 이 책을 한손에 들고 다른 한 손으로 새우깡이라도 먹으면서 가볍게, 재미있게 읽을 수 있는 책이다. 아직은 막연히 코드에 문법에 묶여있는 프로그래머 지망생, 혹은 자신의 업무에 너무 몰입하고 있는 경력자 분들이 잠시 가볍게 다른 분야의 이야기를 들어볼 기회가 될 것 같다.

Dev 2007.03.10
반응형