목록Development/C & C++ (14)
루토's sssssstory
출처 : http://keegan.tistory.com/trackback/2591. static_cast C++언어에서 캐스트(cast) 연산은 가장 보편적으로 사용되는 연산 입니다. 그러나 이것 만큼 정확한 의미를 모르고 사용되는 연산또한 없을 것입니다. Visual C++ 가 제공하는 캐스트는 크게 묵시적 캐스트(implicit cast)와 명시적캐스트(explicit cast) 두 가지로 나눌 수 있습니다. 묵시적 캐스트는 문법적인 키워드가 존재하지 않습니다. 이에 반해명시적 캐스트는 문법적인 키워드를 가지고 있는데, 여기에는 (), static_cast, const_cast,reinterpret_cast , dynamic_cast 다섯 가지가 있습니다. 이것에 대해 하나 하나 살펴 보겠습니다. s..
출처 : 검색 부분 발췌 헤더를 보면 다음과 같은 매크로가 있다. DECLARE_DYNCREATE(CMainFrame) 이것은 무엇인가?... 궁금하지 않은가?.. 바로 이것은.. RunTimeClass라는 구조체를 사용하겠다고 선언하는 것이다. 자세한 것은 솔직이 본인도 잘 모르지만.. 런타임 구조체라는게 어떤 것이라는 건 한번 되짚고 넘어가 볼 필요가 있다. 다음은 런타임 클래스의 정의를 설명해 놓은 원문이다. CRuntimeClass does not have a base class. Each class derived from CObject is associated with a CRuntimeClass structure that you can use to obtain information about ..
//RTTI(run time type information) example #include #include #define RUNTIME_CLASS(class_name) (&class_name::class##class_name) class CObject; //{{struct CRuntimeClass------------------------------------------------ struct CRuntimeClass { char m_lpszClassName[21]; int m_nObjectSize; CObject* (*pfnCreateObject)(); CObject* CreateObject(); };//struct CRunTimeClass CObject* CRuntimeClass::CreateObje..
출처 : http://blog.naver.com/topgunmagic #pragma once C의 헤더 파일 최상단에서 자주 볼 수 있는 이 코드는 컴파일러에게 이 헤더 파일이 한번만 빌드되도록 알려주는 명령입니다. 왜 넣어야 하냐면, A.h라는 파일이 여러 곳에서 복잡하게 #include 되어 쓰이게 된다면 그때마다 각각 정의가 추가되게 되어 중첩되는 경우가 발생됩니다. 이 경우 중복 정의되었다는 에러가 발생하게 되지요. 즉 같은 내용이 여러번 빌드되게 되는겁니다. 이를 막기위해 #pragma once가 필요합니다. 물론 컴파일시간도 줄여주므로 대부분의 헤더파일에 추가하기를 추천합니다.#pragma는 C언어에서 컴파일러에 직접 정보를 전하기 위해 사용합니다.MSDN에서 발췌한 내용입니다.#pragma ..