[c++] 네임스페이스의 가시성

C++에서 네임스페이스는 코드를 구성하고 이름 충돌을 방지하기 위한 유용한 도구입니다. 하지만 네임스페이스에는 가시성이라는 중요한 특성이 있습니다.

네임스페이스 가시성

네임스페이스 멤버인 변수, 함수, 클래스 등은 기본적으로는 비공개(private)입니다. 다른 네임스페이스에서 접근하기 위해서는 명시적으로 공개(public)로 선언해주어야 합니다.

namespace MyNamespace {
    int publicVar;  // 공개 변수
    void publicFunction();  // 공개 함수

    static int privateVar;  // 비공개 변수
    static void privateFunction();  // 비공개 함수
}

위의 예제에서 publicVarpublicFunction은 다른 코드에서 접근할 수 있지만, privateVarprivateFunctionMyNamespace 외부에서 접근할 수 없습니다.

네임스페이스 가시성 제어

네임스페이스 멤버의 가시성을 제어하기 위해 public, protected, private 등의 접근 지정자를 사용할 수 있습니다.

namespace MyNamespace {
public:
    int publicVar;  // 공개 변수
    void publicFunction();  // 공개 함수

protected:
    int protectedVar;  // 보호 변수
    void protectedFunction();  // 보호 함수

private:
    int privateVar;  // 비공개 변수
    void privateFunction();  // 비공개 함수
}

이러한 접근 지정자를 사용하여 멤버의 가시성을 명시적으로 설정할 수 있습니다.

결론

C++ 네임스페이스의 가시성을 올바르게 이해하고 사용함으로써 코드의 모듈성을 유지하고 이름 충돌을 방지할 수 있습니다. 네임스페이스 가시성을 올바르게 활용하여 안정적이고 유지보수가 용이한 코드를 작성하는 데 도움이 될 것입니다.

참고 자료