본문 바로가기
공부/개발노트

[C/C++] namespace 예제

반응형




이름 공간(namespace)란?


namespace는 컴퓨터로 치면 디렉토리입니다.

 

namespace를 더 쉬운 이론은 "202호에 사는 철수야!"입니다.

같은 학교, 같은 학년에 철수라는 친구가 2명(김철수, 박철수)이 있으면 "철수 행정실로 오시길 바랍니다."라고 하면 김철수를 부르는건지 박철수를 부르는건지 모릅니다. 그래서 "1반 박철수 행정실로 오시길바랍니다."라고 하면 누굴 부르는 것인지 바로 인지하게됩니다.

 

이름 공간(namespace)의 예제입니다.


 

실행결과

 

 

 

namespace로 함수 정의하면 namespace 함수명 {...}인데 메인 함수에 구현할 때는 위 예제에서도 보이겠지만 namespace 함수명::namespace

내 함수명입니다. 즉 namespace a { void simple(void) {...} }라고 구현했을 때 메인 함수에는 a::simple()로 구현하면된다.



이름공간 기반의 함수 선언과 정의의 구분하기


실행 결과

 

 

4~7행 : 이름공간(namespace) 안에 함수 선언만 되어있다.

9~12행 : 마찬가지로 이름공간 안에 함수 선언

21행 : BestComImpl 선언된 함수 SimpleFunc의 정의 부분

26행 : ProgComImpl 선언된 함수 SimpleFunc의 정의 부분

 

참고로, 동일한 이름공간에 정의된 함수를 호출할 때에는 이름공간을 명시할 필요가 없다.

다음 예제를 보고 이해를 하면 좋을 것이다.


 

실행 결과

 

 


이름공간 중첩(중첩 namespace) 


 

위와 같이 구현을 해놓았으면 아래처럼 쓰면된다.



반응형