-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
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
Soobak
2023.05.07
안녕하세요, 답변 도우미 Soobak 입니다.
의도에 따라서 다르게 작성할 수 있습니다.using namespace MySpace1;
이후 MySpace1
네임 스페이스(명칭 공간) 내부의 요소들에 대하여 명시적으로 이름을 적지 않고 접근할 수 있습니다. 하지만, 강의에서와 같이 "MySpace1
안에 있는 InnerSpace
안에 있는 my_function
을 접근해서 사용한다" 는 의미를 명확하게 하기 위해 명시적으로 네임 스페이스를 모두 적어줄 수도 있습니다.
강의에서 해당 예시 코드가 등장한 부분의 주제가 네임 스페이스 안에서의 추가적인 네임 스페이스의 선언 및 사용 이라는 점에 초점을 맞추어서 이해하시면 좋을 것 같습니다.
답변 1