인프런 커뮤니티 질문&답변
답변 3
0
0
와? 전역에 오버로딩 된것들이 로컬 영역 안에 선언된 함수에 막혀버리네용? ㄷㄷ 비슷한걸 예전 헤더 관련 강의에서 본것 같기도 하고...
hello님 글은 추론하기엔 로컬안에 선언된것을 우선으로 하기때문에 전역까지 가지 않은 거 같아서 저는 그렇게 이해해야겠네용.
그런데 질문자님이 올려주신건
정의가 안되는 이유는 문법문제고 문법을 그렇게 만들어놓은 이유가 있다고 생각하네욤(단순 생각나는건 컴파일러나 로더나).
저는 느낌만 그러면 안되는 것 같다고 느끼고 확답은 모르니.. 다른 능력자분의 답변이 궁금하네요 ㅠ
0
강의 내용에서 7:30 즈음에 언급하시네요.
저도 놓쳤던 부분이라 신기하지만 main을 하나의 local scope로 보면 자연스러운 일인 것 같습니다.
1. 문제는 없어 보입니다.
2. 다음과 같은 경우에 쓸만할 수 있겠네요.
사진처럼 void foo(int) 를 넣어주면 void foo(int) 이외에는 hide됩니다. overloaded functions 중에서 하나만 사용하도록 해주는거죠.
이 경우 main 에 그냥 넣어서 사용하기 보다는 { } , local scope 를 만들어서 그 안에 사용하는 것이 좋아보입니다.
class 를 만들 때도 유용할 수도 있겠네요. overloaded functions 중에...
"overloading 된 것들 중에서 찾기 vs local scope 내에 declaration 하기"
둘 중에 효율적인 것을 선택하시면 될 것 같습니다. 비슷한 경우도 main에 적용할 수 있습니다.





