[디딤돌 C++] 8. 이름 충돌을 방지하는 namespace

학생1) 나는 Stack을 Pink namespace에 정의했어. 나는 Blue namespace에 정의했어.

C++언어는 이미 만들어진 지 30여년이 지났습니다. 이러한 역사 속에서 처음에는 없었던 문법이 새롭게 추가한 것들도 있습니다. 이렇게 새롭게 추가한 문법 중의 하나가 namespace죠. 이미 앞에서 cin과 cout을 사용하기 위해 using namespace std; 문을 사용했었죠. 여기에서 namespace 문법을 다루고 나면 왜 이러한 구문을 사용하였는지를 알 수 있을 거예요.

namespace는 같은 이름을 충돌하지 않게 하는 문법이예요. 수 많은 라이브러리를 만들어지고 있는데 서로 다른 라이브러리에 같은 이름의 형식이나 개체가 있을 때 충돌이 나지 않게 namespace로 감싸게 하여 충돌나지 않게 할 수 있습니다.

먼저 namespace 문법을 사용하지 않았을 때 같은 이름의 형식을 정의하여 충돌하는 예입니다.

namespace를 사용하지 않을 때 같은 이름의 형식명은 충돌합니다.

이를 다음처럼 namespace로 감싸서 정의하면 이름 충돌이 발생하지 않습니다.

이제 namespace로 감싸서 정의한 이름을 사용하는 방법을 알아봅시다.

먼저 네임 스페이스 이름과 스코프 연산자(::)를 사용해서 접근할 수 있습니다.

그리고 특정 네임 스페이스에 있는 모든 이름을 간단히 사용할 수 있게 using 문을 사용할 수 있어요.

using namespace 뒤에 네임 스페이스 이름을 표현하면 모두 사용할 수 있습니다.

그리고 using [네임 스페이스 명]::[사용할 이름]; 을 선언하여 네임 스페이스 내부에 있는 특정 이름만 간단하게 사용할 수도 있어요.

iostream 파일을 포함하여 cin과 cout을 사용하기 위해 using 문을 사용한 이유도 std 네임 스페이스로 감싸서 정의하고 있기 때문이예요.


[C++ 무료 동영상 강의] 8. 이름 충돌을 방지하는 namespace