인프런 커뮤니티 질문&답변

지우님의 프로필 이미지
지우

작성한 질문수

홍정모의 따라하며 배우는 C++

1.13 네임스페이스 (명칭 공간)

하위 네임스페이스에서 상위 네임스페이스의 함수에 접근할 수 있는 이유?

작성

·

272

0

  • MySpace1안의 InnerSpace라는 하위 네임스페이스에서
    MySpace1의 함수인 doSomething(int a, int b)을 호출해보았습니다.
    InnerSpace에서 MySpace1의 함수에 접근할 수 있는 이유가 뭔가요?
    main에서 함수를 호출하는 원리와 같은가요?

  •  

    namespace MySpace1
    {
        int doSomething(int a, int b);

        namespace InnerSpace
        {
            int my_function()
            {
                cout << doSomething(3, 4) << endl;
                return 0;
            }
        }
        int doSomething(int a, int b)
        {
            return a + b;
        }
    }

답변 1

0

namespace에서 접근할 수 있는 함수에는

자신의 부모 namespace의 함수까지도 포괄됩니다.

namespace parent {
    void parentFunc();
    namespace child {
        void childFunc();
        // can use parentFunc() as is 
        parentFunc();
    }
    //should use fully qualified name for childFunc()
    child::childFunc();
}

 

자식 namespace 에서는 위 코드와 같이 바로 부모 namespace 함수를 호출할 수 있고,

부모 namespace에서는 자식 namespace 이름을 명시하여 접근할 수 있습니다.

 

지우님의 프로필 이미지
지우

작성한 질문수

질문하기