C++에서 namespace는 서로 다른 구성 요소 간의 이름 충돌을 방지할 때 사용 되며 변수, 함수 및 클래스와 같은 식별자가 선언되는 공간이다.
:: 를 통해 소속을 구분한다
namespace 예시
#include <iostream>
// namespace 키워드를 사용해 만든다.
namespace TestNameSpace
{
void Print()
{
// std::cout 또한 std라는 namespace에 있는 cout 객체를 쓰는 것이다.
std::cout << "TestNameSpace" << std::endl;
}
}
void Print2()
{
std::cout << "Test";
}
int main()
{
// :: 범위연산자를 통해 TestNameSpace:: 안에 있는 Print()함수를 호출한다.
TestNameSpace::Print();
// 아래와 같이 소속이 없으면 :: 범위연산자 없이 쓰거나 :: 을 붙혀서 무소속으로 호출이 가능하다.
Print2();
::Print2();
return 0;
}
정규화된 네임스페이스
#include <iostream>
namespace test1
{
namespace test2
{
namespace test3
{
int test = 5;
}
}
}
// 깊이가 있는 네임스페이스를 줄일 수 있다. -> "정규화된 네임스페이스"라고 부름
namespace test = test1::test2::test3;
int main()
{
test::test = 10;
}
'C, C++' 카테고리의 다른 글
22. c++ 메모리 동적할당 (0) | 2023.06.13 |
---|---|
21. auto 자료형 (0) | 2023.06.12 |
19. C++ 언어 (0) | 2023.06.10 |
18. 전처리기 지시문 (0) | 2023.06.09 |
17. 열거형 (0) | 2023.06.08 |