가능한 중복 : 나는
std::cout
다른 장소에서 사람들이 상단에using namespace std;
을하는 반면, 말하자면, 사람들이 사용하는 몇 가지 코드 예제를 본 적이
Why is 'using namespace std;' considered a bad practice in C++?스타일과 네임 스페이스
단순함 대신. 어느 것이 일반적으로 선호됩니까?
가능한 중복 : 나는
std::cout
다른 장소에서 사람들이 상단에using namespace std;
을하는 반면, 말하자면, 사람들이 사용하는 몇 가지 코드 예제를 본 적이
Why is 'using namespace std;' considered a bad practice in C++?스타일과 네임 스페이스
단순함 대신. 어느 것이 일반적으로 선호됩니까?
사용 std::cout
을 이름 충돌. using namespace std;
을 사용하면 전역 이름 공간에 사용자 또는 팀의 다른 누군가가 작성한 클래스 또는 함수 이름과 충돌 할 수있는 모든 표준 이름을 채 웁니다. 당신이 이미 알고있을 수 있습니다 -이 잘 C++ faq lite에 당신이 결코using namespace
헤더의를해야 SO
코드를 작성할 때 개인적으로 전체 네임 스페이스 단위를 사용합니다. std::string
등. 개발자가 사용하고자하는 기능을 읽는 사람이라면 누구나 명확하게 알 수 있습니다.
나는 다음과 같은 말을 본 적이 : 어떤 가능성을 피하기 위해 한번, 그것을 천 번을 읽어
쓰기 ...
:
먼저 노트에 설명되어 있습니다. 그 이유는 해당 파일을 포함하는 모든 소스 파일에 using
을 가져 오기 때문입니다.
심지어 소스 파일 수준에서도 명시 적으로 표준 라이브러리 함수와 클래스를 정규화하는 것을 선호합니다. std::cout
. 그러나 어떤 경우에는 편의를 위해 대신 특정 사용을 사용합니다 (예 : using std:endl
). 그러나 나는 일반적으로 명백한 자격을 선호한다.
또 다른 대안은'std :: cout'을 사용하는 것입니다. – hmjd
[왜'namespace std;를 사용하는 것은 나쁜 습관이라고 생각합니까?] (http://stackoverflow.com/questions/1452721/why-is-using-namespace-std-considered-a-bad-practice-in-c)) – chris
간단한 규칙을 원한다면 :'using' 지시어를 사용하지 마십시오 (즉,'using namespace abc;'); unhiding과 ADL 제어를 위해서만'using' 선언 (예 :'Using Base :: foo')을 사용하십시오. 소스 코드를 깔끔하게 유지하려면 네임 스페이스 별칭을 사용하십시오. –