본문 바로가기

Programming/C & C++43

C++ Casting 관련 (it needs code test) Before Introduction of the casting -------------------------------------------------------------------------------------------- Casting에 대한 설명 전에 당부하고 싶은 말은, 되도록 Casting 횟수를 최소화 하라는 것이다. 왜냐하면 Casting을 하다보면 틀린 코드를 쓰고도 모르는 경우가 발생할 수 있으며, Casting시 Overhead가 있기 때문이다. 꼭 필요한 것인지 다시한번 생각해볼 필요가 있는 녀석이다. 또하나 당부하고 싶은 말은, 구형스타일의 캐스트를 쓰려거든 (예) (int)32.353 C++스타일의 캐스트를 사용하라는 것이다. 코드상에서 캐스팅 영역을 발견하기도 편하고, 그로 .. 2008. 9. 17.
Implementation시 자주 하는 실수들 1. 클래스.cpp 를 기술할때 "클래스::" 를 함수 앞에 안붙인다. (ex) int test() [x] -> int SampleClass::test() [o] 2. Undefined reference 관련 에러 - 해결 1 : library path 와 name 을 확인한다 - 해결 2 : 다른 library에 영향을 받지않는 독립적인 library 부터 먼저 붙이도록 한다. 이 문제는 static library에서 나기때문에 해당사항이 없다면 별로 고려하지 않아도 된다. 하지만 makefile 안에 library를 추가하는경우 dependency를 고려하여 하나씩 써 나간다면 나중에 에러를 찾는데 드는 엄청난 시간을 절약할 수 있다. 2008. 9. 2.
Class 내의 const static 멤버의 초기화 위치 - 출처 : 채현님 블로그 Why I wrote this page? -------------------------------------------------------------------------------------- const char* 형을 클래스 내부에 static 으로 가지고 있으려고 했는데, 오류를 해결하려고 오랜시간을 보낸결과 정리가 잘되어있는 블로그를 발견하고 이를 해결하였다. 약간 정리 하여 아래에 기술해본다. 채현님께서도 해깔린다고 했는데, 다음에 또 해깔리겠군 ㅡ.ㅡ; Description -------------------------------------------------------------------------------------- 1. 클래스 내의 모든 static member variables.. 2008. 7. 7.
define 관련 재미있는 사용법 #define 에서 정의한 2개의 인자를 붙어서 하나의 스트링으로 쓸수 있다. 가령 func(x,y) 를 주었을때 x와 y의 내용을 붙어서 변수명으로 선언하고 싶은경우 아래의 방법을 참고하면 된다. #define concat(x,y) int x##y; 이런경우 아래에서 concat(Time, Check) 라고 사용하면 TimeCheck 를 int 형 변수로 이용할 수 있다. 실로 재미있는 일이다. http://msdn.microsoft.com/en-us/library/09dwwt6y(VS.80).aspx http://www.keil.com/support/man/docs/c166/c166_pp_tokenpastingop.htm 2008. 5. 6.