코딩하는 오징어
네임스페이스(namespace) 본문
안녕하세요. 코딩하는오징어 입니다. 오늘은 네임스페이스에대해 포스팅하겠습니다. 네임스페이스는 어려운개념이 아닙니다. 단순히 이름공간을 따로 생성해줌으로써 협업을 하게 될 경우 함수명이나 변수명이 겹치게 되는 문제를 해결하기 위한 방법입니다. 매우 간단한 개념이므로 예제코드를 보면서 설명하겠습니다.
코드만 봐도 아 이런거구나 느낌이 오시죠??! 네 그렇습니다. 네임스페이스를 만들어 놓으면 함수 시그니처가 똑같더라도 중복문제가 발생하지 않습니다. 이 때, scope operator로 (범위지정 연산자) 구분하게 되는데요. 네임스페이스::함수명 이렇게 구분하게 됩니다. 여기서 ::이것이 범위지정 연산자입니다. 네임스페이스뿐만아니라 클래스 부분에서도 쓰이게되는 연산자이기 때문에 기억해두시기 바랍니다. 위에 코드를 보시면 알겠지만 네임스페이스안에 또 다른 네임스페이스를 생성할 수 있습니다. 이를 중첩 네임스페이스라고 하는데요. 저렇게 까지 네임스페이스를 구분하는 일은 드물지만 기능이므로 알아두시면 좋을 것 같습니다.
출력 결과입니다. 네임스페이스안에 있는 함수들이 호출 되는 것을 확인 할 수 있습니다.
하지만 저렇게 네임스페이스를 계속 쳐주면서 코딩하는게 불편하게 느껴질 수 있습니다. 그럴 땐 using이라는 명령어를 사용하게되면 네임스페이스를 따로 지정하지 않아도 그 안에 함수들이 호출 됩니다.
빨간줄 쳐놓은 곳을 보시면 별다른 설명이 없어도 차이점을 아시겠죠?? cout을 std::cout 타이핑 하지않는 이유도 using namespace std를 한 결과이죠! ㅎ
네임스페이스에 대해서는 이 정도만 아셔도 큰 무리가 없을 거라고 생각됩니다. 읽어주셔서 감사합니다.
'Language > C++' 카테고리의 다른 글
C++의 클래스 생성자 & 소멸자 (1) | 2017.10.09 |
---|---|
C++에서의 동적할당과 해제(new & delete) (0) | 2017.10.06 |
함수 오버로딩(function overloading)과 매개변수의 디폴트 값 (0) | 2017.09.26 |
참조자(reference) (0) | 2017.09.25 |
visual studio DEBUG (0) | 2017.09.17 |