[C++] 이름공간(namespace) 사용 시 주의사항
2022. 2. 7. 19:04ㆍLanguages/C++
이름 공간 전체 사용 선언은 권장하지 않는다.
C++ 프로그래밍을 할 때, 범위지정 연산자를 붙이기 귀찮아서 다음과 같이 이름 공간 전체를 사용하겠다고 선언한 적이 있다.
using namespace std; // std 이름 공간 전체 사용 선언
하지만 이런 방법은 권장되지 않는다고 한다. std 이름 공간 내부에 이름이 겹치는 함수를 만들게 된다면 오류가 발생하기 때문이다.
C++ 표준 라이브러리는 매우 거대해서 수많은 함수들이 존재한다. 그러니, 자칫 잘못해서 위와 같은 오류가 발생한다면 해결하는데 매우 힘이 들 것이라고 한다. 또한, C++ 버전이 바뀔 때마다 기존 이름 공간에서 추가되는 함수들이 있을 수 있으므로 기존에 잘 작동하던 코드가 이름 충돌로 인해 동작하지 않을 수도 있다고 한다.
따라서, 1)범위지정 연산자(::)를 붙여서 명시하는 습관을 들이는 걸 권장하고, 2)내 자신이 작성한 코드 또한 나만의 이름 공간에 넣어서 충돌을 예방하는 것이 좋다.
728x90
반응형
'Languages > C++' 카테고리의 다른 글
[C++] 초기화 리스트(Initializer list), static (0) | 2022.02.09 |
---|---|
[C++] 복사 생성자(Copy constructor), 얕은 복사(Shallow Copy), 깊은 복사(Deep Copy) (0) | 2022.02.09 |
[C++] 생성자(Default Constructor) 사용 시 주의사항 (0) | 2022.02.08 |
[C++] C++ 컴파일러에서 함수를 오버로딩(Overloading)하는 과정 (0) | 2022.02.08 |
[C++] 참조자(Reference) (0) | 2022.02.08 |