모든 C ++ 과정에서 모든 교사는 항상 파일 using namespace std;
에서 #include
s 바로 뒤에 배치 .h
합니다. 그 이후로 다른 프로그램에 해당 헤더를 포함하면 내 프로그램으로 네임 스페이스를 가져올 수 있습니다. 그 이후로 이것은 나에게 위험한 것 같습니다. 아마도 그것을 깨닫거나 의도하거나 원하지 않는 것입니다 (헤더 포함은 매우 깊게 중첩 될 수 있습니다).
그래서 내 질문은 두 배입니다. using namespace
헤더 파일에 사용해서는 안되는 것이 맞습니까? 그리고 / 또는 다음과 같은 실행 취소 방법이 있습니까?
//header.h
using namespace std {
.
.
.
}
같은 줄을 따라 한 가지 더 질문 : 헤더 파일에 #include
해당 .cpp
파일에 필요한 모든 헤더를 파일로 지정 하고 , 헤더 정의에 필요한 헤더 만 .cpp
파일 #include
에 나머지 파일로 두어야합니까 extern
?
질문의 이유는 위와 동일 .h
합니다. 파일을 포함 할 때 놀라움을 원하지 않습니다 .
또한 내가 옳다면 이것은 일반적인 실수입니까? 실제 프로그래밍과 "실제"프로젝트를 의미합니다.
감사합니다.
using namespace
문 으로 인해 이름 충돌이 발생하면 정규화 된 이름을 사용하여 문제를 해결할 수 있습니다.