• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

1.13 MySpace1::InnerSpace::my_function();에 관하여

23.05.06 18:45 작성 조회수 167

1

namespace MySpace1

{

namespace InnerSpace

{

int my_function()

{

return 0;

}

}

}

using namespace std;

int main()

{

using namespace MySpace1;

MySpace1::InnerSpace::my_function();

return 0;

}

여기서 선생님께서 main function에서 my_function()에 접근하려면 MySpace1::InnerSpace::my_function();으로 적어야 한다고 설명해주셨습니다.

여기까지는 확실하게 이해했습니다.

그런데 여기서 1가지 의문점이 생겼습니다.

main function에서 using namespace MySpace1;을 적어주었기 때문에 MySpace1::InnerSpace::my_function();이 아니라

InnerSpace::my_function();으로 적어야 하지 않나요?

어떤 게 맞는 건가요?

답변 1

답변을 작성해보세요.

1

Soobak님의 프로필

Soobak

2023.05.07

안녕하세요, 답변 도우미 Soobak 입니다.

의도에 따라서 다르게 작성할 수 있습니다.
using namespace MySpace1; 이후 MySpace1 네임 스페이스(명칭 공간) 내부의 요소들에 대하여 명시적으로 이름을 적지 않고 접근할 수 있습니다. 하지만, 강의에서와 같이 "MySpace1 안에 있는 InnerSpace 안에 있는 my_function 을 접근해서 사용한다" 는 의미를 명확하게 하기 위해 명시적으로 네임 스페이스를 모두 적어줄 수도 있습니다.

강의에서 해당 예시 코드가 등장한 부분의 주제가 네임 스페이스 안에서의 추가적인 네임 스페이스의 선언 및 사용 이라는 점에 초점을 맞추어서 이해하시면 좋을 것 같습니다.