이름공간(namespace)
가령, 프로그램을 하나 만드는데 A회사, B회사, C회사 총 3개의 회사의 라이브러리의 이름과 매개변수, 반환형 모두 똑같은 3개의 Func함수를 참조한다고 하자. C언어로는 Func함수 호출문장을 입력하면 어떤 회사의 Func함수를 가져오라는건지 C++의 함수 오버로딩으로도 매개변수 선언까지 똑같아버리면 알 수 없게 된다. 어떻게 구분해야할까? C++에서는 이를위해 이름공간이라는 문법을 제공한다 이름도, 매개변수 선언도 똑같은 SimpleFunc라는 함수가 두개 있다. 본래라면, 컴파일 오류가 떠야하지만 다른 namespace안에 넣어줬기 때문에 main함수에서 어떤 이름공간의 함수인지 써주면 정상적으로 출력이 가능하다 " :: "은 범위 지정 연산자이다.