C++ 프로그램을 이용한 프로젝트가 커지면서 여러 개발자가 함께 프로그램을 개발하고 있다. 각 개발자들은 프로그램 코드를 작성할 때 필요한 변수, 클래스, 함수 등의 이름을 정의한다. 하나의 실행파일을 구성하는 프로그램에서는 동일한 이름의 변수, 클래스, 함수가 존재하면 안된다. 그러나 여러 개발자가 하나의 프로젝트에 공동 작업을 하면서 이름을 유일하게 결정하는 것은 쉽지 않은 일이다. 이름을 유일하게 유지하기 위해서는 공동 개발자들이 프로그램에서 사용하는 이륻을 공동 관리하거나 개발자가 유일한 이름공간 내에서 이름을 만들면 이름의 충돌을 피할 수 있다.
이름공간 C++ 프로그램의 구성요소인 변수, 클래스, 함수 등의 이름이 속한 공간으로 이름공간과 변수 이름, 클래스 이름, 함수 이름이 결합되어 변수 이름, 클래스 이름, 함수 이름의 충돌을 방지하는데 사용할 수 있다.
manager
라는 이름공간 내의 value 와 player
라는 이름공간 내의 value가 선언되며 이들은 이름공간과 함께 사용하면 이름이 충돌이 이루어지지 않으며
별도의 저장공간을 할당되며 사로 다른 데이터 값을 저장하고 확인이 가능히다.
using namespace std;
namespace manager {
int value = 300;
}
namespace player {
int value = 200;
}
int main(int argc, char const *argv[])
{
cout << manager::value << endl;
cout << player::value << endl;
return 0;
}
다음 프로그램의 실행 결과는 다음과 같다.
300
200
이 전 프로그램에서 화면에 출력을 하거나 키보드로 부터 데이터를 입력받을 때 사용하는 객체로 cin
, cout
가 존재한다.
이들 cin
, cout
은 std
이름공간 내에서 선언되어 있다. 이들 객체를 사용하기 위해서는 범위 연산자인 ::
를 사용하여
std::cin
, std::cout
과 같이 명시를 하여야 한다.