트랙
/
C++
C++
/
학습 과정
/
네임스페이스
네임

네임스페이스 에서 C++

3개의 연습 문제

네임스페이스 소개

코드를 체계적으로 정리하는 중요한 방법 중 하나가 네임스페이스예요. 두 함수의 이름이 충돌할 수 있는데, 이럴 때는 두 함수를 서로 다른 네임스페이스에 넣어 해결할 수 있어요. 네임스페이스는 중첩할 수 있어서 커다란 코드베이스를 구조화하는 데 도움이 돼요. 네임스페이스에 접근할 때는 스코프 확인 연산자 ::를 사용해요.

아래 예제는 서로 다른 두 foo 함수를 사용하는 방법을 보여줘요. 각 함수 앞에 해당 네임스페이스를 붙이면 두 함수를 함께 사용할 수 있어요.

namespace my_ns {
    int foo() {
        return 44;
    }
    namespace my_inner_ns {
        int baz() {
            return 90;
        }
    }
}
namespace my_other_ns {
    int foo() {
        return -2;
    }
}
int myresult{my_ns::foo() + my_other_ns::foo() * my_ns::my_inner_ns::baz()};
Advanced

네임스페이스가 깊게 중첩되면 코드가 너무 장황해질 수 있어요. using으로 네임스페이스를 가져오면 이런 장황함을 없앨 수 있어요. 이렇게 하면 모든 이름이 전역 네임스페이스로 옮겨져요. 어느 정도 구분을 유지하려면 별칭을 쓰는 게 좋아요.

int my_other_result{my_ns::my_inner_ns::baz()};

using namespace my_ns::my_inner_ns; // importing the complete namespace
int also_other_result{baz()};

namespace m = my_ns; // setting an alias
namespace o = my_other_ns;

int also_my_result{m::foo() + o::foo() * m::my_inner_ns::baz()};
GitHub에서 편집 링크가 새 창이나 탭에서 열려요

네임스페이스 배우기