문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 C++/문법 (문단 편집) == [[네임스페이스|이름공간]] (Namespace) == {{{#!syntax cpp namespace /*식별자*/ { ...; } }}}'''이름 공간(Namespace)''' 이름공간, 또는 네임스페이스는 식별자 사이의 이름 충돌을 막기 위한 장치이다. 이름공간은 각각 분리된 프로그램처럼 존재하며 다른 이름공간끼리는 별도의 지시자없이는 참조할 수 없다 [* 이를 코드 범위(Scope)가 다르다고 한다]. 당연히 지시자 없이는 다른 이름공간의 식별자를 참조할 수 없다. 프로젝트가 일정 규모 이상 커지거나, 외부 라이브러리를 사용하는 경우 이름이 같은 함수, 상수, 클래스[* 이를 통틀어 객체라고 칭한다] 등이 발생할 가능성이 커진다. 예를 들어 비슷한 용도의 반복적인 기저 코드 작성(Boilerplate)이 프로젝트에서 반복되다 보면 단어란 단어는 다 소모하고 비슷한 유틸리티 함수가 늘어난다. 이때 다른 라이브러리 사이에 같은 이름의 객체가 있으면 컴파일러는 이를 구분할 수 없다. 차라리 모호하다고 컴파일 오류를 내거나 런타임 오류라도 나면 다행이지만, 그렇지 않고 정상작동하는 것처럼 보이는 코드가 되면 예측할 수 없는 동작을 할 것이다. C언어에서 가장 큰 문제 중 하나가 프로젝트가 커질수록 식별자의 명칭이 겹칠 위험이 커지는 것이였다. C++에서 도입된 이름 공간은 큰 규모의 프로그램 개발에서 객체의 명명 문제를 대부분 해결해준다 [* 많은 [[객체 지향 프로그래밍|객체 지향 언어]]가 그렇듯 C++에서도 이름이 같은 두 클래스가 속한 이름공간이 다르면 공존할 수 있다].저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기