[C++] namespace, using

강승구·2022년 6월 9일
0

namespace

C++가 지원하는 각종 요소들(변수, 함수, 클래스)을 한 범주로 묶어주기 위한 문법이다.
네임스페이스를 이용해 소속을 나누면 큰 프로그램을 만들 때 이름이 겹치는 문제를 쉽게 방지할 수 있다.

#include <iostream>

using namespace std;

namespace TEST
{
    int data = 100;
    void TestFunc(){
        cout << "Hello World!";
    }
}

int main(){
    cout << TEST::data;
    TEST::TestFunc();
}

using

namespace는 소속을 나타내는데 using을 사용하면 namespace를 생략가능하다.

#include <iostream>

using namespace std;


namespace TEST
{
    int data = 100;
    void TestFunc(){
        cout << "Hello World!";
    }
}

using namespace TEST;

int main(){
    cout << data;
    TestFunc();
}

using은 namespace를 선언한 후에 사용 가능하다.

namespace 중첩

namespace안에 또다른 namespace가 속할 수 있다.
c++에서는 이름이 같은 변수나 함수라도 속해있는 namespace가 다르면 전혀 다른 객체로 인식한다.

#include <iostream>

using namespace std;

namespace TEST1
{
    int data = 100;
    namespace TEST2
    {
        int data = 200;
        namespace TEST3
        {
            int data = 300;
        }
    }
}


int main(){
    cout << TEST1::data << endl;
    cout << TEST1::TEST2::data << endl;
    cout << TEST1::TEST2::TEST3::data << endl;
}

data변수는 모두 이름은 동일하지만 namespace가 다르기 때문에 서로 다른 값을 갖는다.

profile
강승구

0개의 댓글