{

네임스페이스 using이 무엇인가?
namespace를 선언된 위치로 모두 끌고 오는 엄청난 매력적인 녀석이다. 사용 방법은 using std; 처럼 namespace를 지칭하면 된다.

이 매력적인 녀석이 왜 안되나?
 .. 너무 매력적이면 역시 근심 덩어리다. 앞에서 알짱거리는 매력적인 녀석을 항상 서로 차지하려고 다투는데 얼마나 골치 아프겠는가? (#include 앞)

예를 들어 줄 수 있는가?






s2.h와 s3.h 를 바꾸며, 컴파일 해 보면 이상한 현상이 일어 날 것이다. 이것을 외우고 대처해도 사실 코드를 짜도 무관하다. 하지만. 이걸 외우고 다른 사람에게 외우라고 하기 보다는, 아예 이런것을 몰라도 되는 상황을 만드는게 더 좋지 않을까 한다. 물론 기본사항으로 알아야 되는 사항이긴 하지만 ㅋ

그렇다면 어떻게 하지 말아야 하는가?
첫째, 네임스페이스 using을 헤더 파일에 넣지 않는다.
둘째, using 다이렉티브를 헤더 파일에 넣지 않는다.
셋째, #include 전에 using 을 쓰지 말자.


잘 이해가 되지 않는데 좀 더 설명 할 수 있는가?
 우선 위의 코드를 컴파일 하면서 using 의 좋은점과 나쁜점을 익히는게 좋을 듯 하다.자세한 것은 more Exceptional C++ 항목 39 ~ 항목 40에 나와 있으니, 참고 하면 좋을 듯 싶다.

}


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

항목 64 : 정적, 동적인 다형성을 절적히 혼합하라. ( Blend static and dynamic polymorphism judiciously. )  (0) 2009.04.11
항목 63 : 모듈의 인터페이스 내에는 충분한 이식성을 갖춘 타입을 사용하라. ( Use sufficiently portable types in a module’s interface. )  (0) 2009.04.11
항목 62 : 예외가 모듈의 경계를 넘어 전달되는 것을 막아라. ( Don’t allow exceptions to propagate across module boundaries. )  (0) 2009.04.11
항목 61 : 헤더 파일 내에는 서로 연결된 엔티티를 정의해서는 안된다. ( Don’t define entities with linkage in a header file. )  (0) 2009.04.11
항목 60 : 서로 다른 모듈에서의 메모리 할당과 해지는 피하라. ( Avoid allocating and deallocating memory in different modules. )  (0) 2009.04.11
항목 58 : 특별히 함께 작동하게끔 의도된 경우가 아니라면 타입과 함수는 분리된 네임스페이스에 넣어라. ( Keep types and functions in separate namespaces unless they’re specifically intended to work together. )  (0) 2009.04.08
항목 57 : 타입과 그의 비멤버 함수는 같은 네임스페이스 내에 넣어라. ( Keep a type and its nonmember function interface in the same namespace. )  (2) 2009.04.08
항목 56 : 필요하다면 실패가 없는 swap을 활용하라. ( Whenever it makes sense, provide a no-fail swap (and provide it correctly) )  (0) 2009.04.06
항목 55 : 정규형의 할당 방식을 사용하라. ( Prefer the canonical form of assignment. )  (0) 2009.04.06
항목 54 : 개체의 조각화를 피하라. 기반 클래스 내에서의 복사보다는 Clone을 활용하라. ( Avoid slicing. Consider Clone instead of copying in base classes. )  (0) 2009.04.06
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기