네임스페이스는 소속 만들기와 이름 가져오기를 구분해 쓴다
선언은 이름을 어디에 둘지 정하고, 사용은 호출 지점에서 이름을 얼마나 줄일지 정합니다.
상황
선택
이유
같은 주제의 함수가 여러 파일에 늘어난다.
namespace app { ... }관련 이름을 한 소속으로 묶어 충돌 범위를 줄인다.
호출 지점에서 출처가 보여야 한다.
app::print()이름이 길어져도 모호성이 가장 작다.
한두 이름만 반복해서 쓴다.
using std::cout;필요한 이름만 짧게 가져온다.
전체 소속을 열고 싶다.
using namespace std;편하지만 충돌 후보를 크게 늘린다.
헤더 파일에서는 using namespace를 피합니다. 그 헤더를 포함한 모든 파일로 충돌 위험이 퍼집니다.