본문 바로가기
C++/이름공간(name space)

[C++] 이름공간 (std::cout 의 의미)

by bigpicture 2022. 6. 2.
반응형

여러 사람이 프로그램을 동시에 개발하다 보면 함수 이름이 중복될 수 있습니다. 이러한 중복 문제를 해결하기 위해 이름공간이 등장하였습니다. 

예를 들어 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 함수인 것입니다. 

반응형

댓글