기본적으로 C++에서 변수, 함수의 이름이 중복될 경우 충돌이 발생한다.
namespace를 사용하면 이름이 사용되는 공간이 제한된다.
따라서 이러한 충돌 문제를 방지하기 위해 namespace를 사용할 수 있다.
일반적으로 네임스페이스는 헤더 파일에서 정의한다.
#include <iostream> namespace MySpace1 // 첫번째 네임스페이스 정의 { int Calc(int a, int b) { return a + b; } } namespace MySpace2 // 두번째 네임스페이스 정의 { int Calc(int a, int b) { return a * b; } } int main() { int res1 = MySpace1::Calc(2, 5); // 첫번째 네임스페이스의 Calc 함수 호출 int res2 = MySpace2::Calc(2, 5); // 두번째 네임스페이스의 Calc 함수 호출 std::cout << res1 << std::endl; // 2 + 5 출력 std::cout << res2 << std::endl; // 2 * 5 출력 }