Namespaces (using)

2024. 8. 3. 11:45프로그래밍 언어/C++

출처: https://en.cppreference.com/w/cpp/language/namespace#Namespaces

 

Namespaces - cppreference.com

Namespaces provide a method for preventing name conflicts in large projects. Entities declared inside a namespace block are placed in a namespace scope, which prevents them from being mistaken for identically-named entities in other scopes. Entities declar

en.cppreference.com

 

* using

 - using namespace ns-name ;

 

특정 네임스페이스를 명시하지 않고 그 안의 모든 요소를 사용할 수 있게 하는 기능. 이  구문을 사용하면, 해당 네임스페이스 안의 모든 이름을 마치 현재 범위에 선언된 것처럼 사용할 수 있게 된다. 이를 통해 특정 네임스페이스의 멤버를 간편하게 사용할 수 있게 된다. 다만 이름 충돌의 위험이 있어 가급적 사용을 하지 않고 전체 이름을 적는 것이 더 바랍직하다.

(학습 또는 테스트용으로 빠르게 처리하는 경우 등에서만 사용하고 가급적 사용을 하지 않는 것이 좋을 것 같다는 의견입니다.)

 

예시 (ChatGPT 생상):

#include <iostream>

namespace A {
    void display() {
        std::cout << "Display from namespace A" << std::endl;
    }
}

namespace B {
    void display() {
        std::cout << "Display from namespace B" << std::endl;
    }
}

int main() {
    using namespace A;
    display(); // A::display() 호출

    // B::display()를 호출하려면 네임스페이스를 명시해야 합니다.
    B::display();

    return 0;
}