정확히는 '헤더 파일에서' 쓰면 안 됨.
C/C++에서 헤더 파일은 대단한 기능이 있는 게 아니라 그냥 파일의 내용을 그대로 복사해 #include 한 곳에 붙여넣기 해버리는데 만약 헤더에 using이 들어있었다면 그 파일 전체에 using이 붙어버리게 되는 거임.
#include의 #include의 #include가 반복되다 보면 진짜 상상도 못한 곳에 기어들어간 using 때문에 갑자기 멀쩡한 파일이 코드 칠공분혈 하면서 컴파일 터지는 경우가 생길 수 있어.
cpp 파일 내에서는 >>헷갈릴 여지가 없다면<< 그냥 쓰는 게 여러모로 편하긴 함
내가 배운건 using namespace std; 이런식으로 방대한 라이브러리를 무심하게 using 선언하는건 안 좋다고 배움
그 안에 무수히 많은 변수, 함수들이 선언되어있고 기존 코드 혹은 앞으로 선언할 이름과 중복될 가능성이 매우 높아서라고 배웠음
만약 그 라이브러리 안에 모든 변수, 함수의 이름을 전부 알고 충돌내지 않을 자신이 있다면 해도 상관없을듯