[C++] 이름공간(namespace) 사용 시 주의사항

2022. 2. 7. 19:04Languages/C++

 

 

 

이름 공간 전체 사용 선언은 권장하지 않는다.

 

C++ 프로그래밍을 할 때, 범위지정 연산자를 붙이기 귀찮아서 다음과 같이 이름 공간 전체를 사용하겠다고 선언한 적이 있다.

using namespace std;   // std 이름 공간 전체 사용 선언

 

하지만 이런 방법은 권장되지 않는다고 한다. std 이름 공간 내부에 이름이 겹치는 함수를 만들게 된다면 오류가 발생하기 때문이다.

 

C++ 표준 라이브러리는 매우 거대해서 수많은 함수들이 존재한다. 그러니, 자칫 잘못해서 위와 같은 오류가 발생한다면 해결하는데 매우 힘이 들 것이라고 한다. 또한, C++ 버전이 바뀔 때마다 기존 이름 공간에서 추가되는 함수들이 있을 수 있으므로 기존에 잘 작동하던 코드가 이름 충돌로 인해 동작하지 않을 수도 있다고 한다.

 

따라서, 1)범위지정 연산자(::)를 붙여서 명시하는 습관을 들이는 걸 권장하고, 2)내 자신이 작성한 코드 또한 나만의 이름 공간에 넣어서 충돌을 예방하는 것이 좋다.

 

 

728x90
반응형