{

왜 일까? 컴파일 타임이 무척 길어 지기 때문이다. 물론 쿼드코어에 옥타코어 더나아가 256개의 코어를 가진 컴퓨터라면 별 상관 없겠지만, 우리같은 서민은 그런 돈 없다. 머리를 써서 시간이라도 벌어야 코딩 한 줄이라도 더 할 수 있고 사장님께  더 많은 돈을 벌어야 한다면, 위의 문구를 반드시 기억해야 한다고 나는 생각한다..(물론 코딩보단 생각을 ... )

자! 개념을 정리하면

정의 의존성이란?
한 객체를 정의 하고자 할 땐, 그 객체의 크기를 알아야 한다. 그래야지만 C++ 컴파일러가 객체의 크기로 메모리를 얼마나 할당할지 컴파일 타임에 결정 하기 때문이다. 그래서 한 객체를 정의 하고자 할때, 다른 객체가 있다면 그 객체의 크기를 알 수 있는 헤더를 제공해 주어야 한다.

순환 의존성이란?
A를 정의할 때 B가 필요하고, B를 정의 할 때 A가 필요한 경우, 이를 순환 의존성이라 한다. A를 바꾸건 B를 바꾸건 둘 다 순환적으로 컴파일 해야 된다. ; )

이를 해결 하는 방법으로는 Exceptional C++ 에 자세히 나와있다. 기법으로는 impl 이디엄이 있다 사실만 말하고 이번 항목을 끝마친다.

오늘은 금요일이다. 거기다가 위메이드에서 럭키펀치가 1등을 하여, 상과 상금을 준다고 두환이에게 연락 받은 뒤라, 토요일이 더욱 기다려 지는 금요일이다! 내일이 기다려 진다!

관령 링크 : http://www.ikpil.com/675

}

'책 정리 > C++ Coding Standards : C++ 코딩의 정석' 카테고리의 다른 글

항목 27 : 표준적인 형식의 산술 및 할당 연산자를 사용하라. ( Prefer the canonical forms of arithmetic and assignment operators. )  (0) 2009.02.25
항목 26 : 오버로딩된 연산자의 본래 의미를 유지하라. ( Preserve natural semantics for overloaded operators. )  (0) 2009.02.24
항목 25 : 값, (스마트) 포인터, 참조 중 적절한 방식으로 인자를 얻어라.(Take parameters appropriately by value, (smart) pointer, or reference. )  (0) 2009.02.24
항목 24 : 내부 #include 가드를 사용하라. 외부 #include 가드를 써서는 안 된다. ( Always write internal #include guards. Never write external #include guards. )  (0) 2009.02.24
항목 23 : 헤더 파일은 충분히 완성된 형태로 만들어라. ( Make header files self-sufficient. )  (0) 2009.02.24
항목 22 : 정의의 의존성과 순환 의존성을 최소화 하라. ( Minimize definitional dependencies. Avoid cyclic dependencies. )  (0) 2009.02.24
항목 21 : 컴파일 단위 사이의 초기화 의존성을 없애라. ( Avoid initialization dependencies across compilation units. )  (0) 2009.02.23
항목 20 : 너무 긴 함수와 많은 중첩구조는 피하라. ( Avoid long functions. Avoid deep nesting. )  (0) 2009.02.23
항목 19 : 변수는 항상 초기화하여 사용하라. ( Always initialize variables. )  (0) 2009.02.23
항목 18 : 가능하면 로컬 변수를 선언하여 사용하라. ( Declare variables as locally as possible. )  (0) 2009.02.23
항목 17 : 마법의 숫자는 쓰지 말라. ( Avoid magic numbers. )  (0) 2009.02.23
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기

댓글을 달아 주세요

">