[C++] 네임스페이스와 ::연산자 - 코드 구조화와 충돌 방지의 핵심
2023. 8. 22. 16:19ㆍ프로그래밍 언어/C++\C
네임스페이스(namespace)는 코드 내에서 충돌을 방지하고 모듈화를 도와주는 기능이다. 네임스페이스를 통해 다른 라이브러리나 클래스에서 동일한 이름의 요소들이 충돌하는 것을 방지할 수 있다.
네임스페이스의 선언은 다음과 같은 방식으로 이루어진다.
namespace MyNamespace {
// 네임스페이스에 포함될 요소들
int myFunction();
class MyClass {
// 클래스 멤버들
};
}
네임스페이스 안에서 선언된 요소들은 MyNamespace::과 같은 형태로 접근할 수 있고, MyClass는 MyNamespace::MyClass로 접근할 수 있다.
네임스페이스는 중첩되게 생성하여 더욱 구조화된 네임스페이스를 만들 수 있다.
namespace Company {
namespace Department {
// 중첩된 네임스페이스 내의 요소들
}
}
특정 네임스페이스에 속하지 않은 요소들은 전역네임스페이스에 속한다. C++ 표준 라이브러리 STL은 std라는 네임스페이스에 수많은 요소들을 지원한다.
문자열을 공부하다보면 std::string::npos과 같은 문장이 나온다. 여기서 주의해야 할 점은 string은 네임스페이스가 아니라 std 네임스페이스 안에 위치한 클래스라는 것이다.
이처럼 ::연산자는 네임스페이스나 클래스의 범위를 지정할 때 사용되는 연산자이다.
'프로그래밍 언어 > C++\C' 카테고리의 다른 글
[C++] 이분 탐색 메서드 - binary_search, lower_bound, upper_bound (0) | 2023.09.07 |
---|---|
[C++] 2차원 배열과 벡터의 동적 할당 (0) | 2023.09.06 |
[C++] 문자열을 다룰 때 조심해야하는 이유 - 문자열 복사 (0) | 2023.08.21 |
[C++] 문자열의 기초부터 꼭 알아야 할 메서드들까지 (0) | 2023.08.21 |
[C++] STL에서의 unordered_map사용법과 map과의 차이점, unordered_set 사용법 (1) | 2023.08.21 |