코딩하는 오징어

네임스페이스(namespace) 본문

Language/C++

네임스페이스(namespace)

코딩하는 오징어 2017. 9. 25. 23:05
반응형

안녕하세요. 코딩하는오징어 입니다. 오늘은 네임스페이스에대해 포스팅하겠습니다. 네임스페이스는 어려운개념이 아닙니다. 단순히 이름공간을 따로 생성해줌으로써 협업을 하게 될 경우 함수명이나 변수명이 겹치게 되는 문제를 해결하기 위한 방법입니다. 매우 간단한 개념이므로 예제코드를 보면서 설명하겠습니다.


코드만 봐도 아 이런거구나 느낌이 오시죠??! 네 그렇습니다. 네임스페이스를 만들어 놓으면 함수 시그니처가 똑같더라도 중복문제가 발생하지 않습니다. 이 때, scope operator로 (범위지정 연산자) 구분하게 되는데요. 네임스페이스::함수명 이렇게 구분하게 됩니다. 여기서 ::이것이 범위지정 연산자입니다. 네임스페이스뿐만아니라 클래스 부분에서도 쓰이게되는 연산자이기 때문에 기억해두시기 바랍니다. 위에 코드를 보시면 알겠지만 네임스페이스안에 또 다른 네임스페이스를 생성할 수 있습니다. 이를 중첩 네임스페이스라고 하는데요. 저렇게 까지 네임스페이스를 구분하는 일은 드물지만 기능이므로 알아두시면 좋을 것 같습니다. 



출력 결과입니다. 네임스페이스안에 있는 함수들이 호출 되는 것을 확인 할 수 있습니다.


하지만 저렇게 네임스페이스를 계속 쳐주면서 코딩하는게 불편하게 느껴질 수 있습니다. 그럴 땐 using이라는 명령어를 사용하게되면 네임스페이스를 따로 지정하지 않아도 그 안에 함수들이 호출 됩니다.



빨간줄 쳐놓은 곳을 보시면 별다른 설명이 없어도 차이점을 아시겠죠?? cout을 std::cout 타이핑 하지않는 이유도 using namespace std를 한 결과이죠! ㅎ


네임스페이스에 대해서는 이 정도만 아셔도 큰 무리가 없을 거라고 생각됩니다. 읽어주셔서 감사합니다.

반응형
Comments