책 정리/C++ Coding Standards : C++ 코딩의 정석

항목 59 : 헤더 파일 내에 또는 #include 앞에 네임스페이스 using을 써서는 안 된다. ( Don’t write namespace usings in a header file or before an #include. )

최익필 2009. 4. 8. 19:54

{

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

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

예를 들어 줄 수 있는가?






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

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


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

}