20. namespace

Yongs12 ㅣ 2023. 6. 11. 23:56

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