반응형
여러 사람이 프로그램을 동시에 개발하다 보면 함수 이름이 중복될 수 있습니다. 이러한 중복 문제를 해결하기 위해 이름공간이 등장하였습니다.
예를 들어 Kim 과 Park 두 사람이 프로그램을 개발한다고 합시다. 두 사람 모두 myfun 이라는 함수를 선언하였습니다. 이때 각자가 자신의 이름으로 이름공간을 정의하고 이름 공간에 함수를 정의하면 문제가 발생하지 않습니다. 아래는 예시입니다.
#include <iostream>
namespace kim
{
float myfun(float num1,float num2)
{
return (num1+num2)/2;
}
}
namespace park
{
float myfun(float num1,float num2)
{
return (num1+num2)/2;
}
}
int main()
{
std::cout<<kim::myfun(1,2)<<std::endl;
std::cout<<park::myfun(5,6);
return 0;
}
kim::myfun 은 kim 이라는 이름공간에 정의된 myfun 함수라는 뜻입니다. std::cout 도 같은 방식으로 해석할 수 있습니다. std 라는 이름공간에 정의된 cout 함수인 것입니다.
반응형
댓글