이름 앞에 소속을 붙입니다
my_namespace::data처럼 가장 명확하고 충돌 가능성이 낮은
방식입니다.
std::cout처럼 스코프 결정 연산자 ::를 쓰면
어떤 공간의 이름을 사용할지 명확해집니다.
value나
processData()가 있어도 네임스페이스가 다르면
공존합니다.
.cpp 안에서만 보이는 전역
함수와 변수를 만들 때 씁니다.
my_namespace::data처럼 가장 명확하고 충돌 가능성이 낮은
방식입니다.
using std::cout;은 특정 이름만 현재 스코프에서 짧게
쓰게 합니다.
using namespace std;는 편하지만 헤더나 전역
스코프에서는 충돌 위험을 퍼뜨립니다.
namespace Outer::Inner::Deep처럼 계층을
간결하게 선언할 수 있습니다.
using namespace는 포함하는 모든 파일에
이름 충돌 위험을 전파합니다.
이름 소속 네임스페이스를 볼 때는 이름을 어디에 선언했고, 호출 지점에서 얼마나 명시적으로 가져오는지가 충돌 가능성을 결정합니다.