• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

MyConstant.cpp 에선 헤더파일 없이 값에 접근할 수 있었던 이유가 궁금합니다.

21.03.22 21:11 작성 조회수 115

0

MyConstant.cpp 가 Main.cpp 나 Test.cpp 처럼 헤더를 include 하지 않고도 값을 선언할 수 있었던 이유가 궁금합니다. 그리고 MyConstant.cpp 의 namespace 가 MyConstant.h 의 namespace와 같은 공간인지 궁금합니다.

답변 1

답변을 작성해보세요.

2

안소님의 프로필

안소

2021.03.24

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

https://www.inflearn.com/questions/102747

이 글을 한번 정독하시면 이해가 되실 것 같습니다.  ("정의"와 "선언"을 구분하시면서 읽어주세요!) 동일한 질문은 아니지만  읽어보시면 질문자님의 첫번째 의문점이 해결 되실 것 같습니다. 

MyConstants.cpp 에서 pi 라는 변수와 gravity 라는 변수를 여기서 처음으로! 메모리 정의를 해준 것입니다. 즉,MyConstants.cpp 에서  pi 라는 변수와 gravity 라는 변수의 존재를 만들어준 것이라서 헤더파일 인클루딩 여부와는 관련이 없습니다.

(45:53) 헤더파일에는 extern 변수의 정의가 아닌 extern 변수의 선언을 하고 있는데요, 헤더파일내에 작성된 코드는 이를 인클루딩 하는 여러 cpp 파일에  "복사"가 되기 때문에 extern 선언이 여러 cpp 파일에 들어가는 것에 도움을 주는 역할을 하고 있습니다.

아무튼! 저 링크글 정독하시는게 이해가 빠르게 되는데에 훨씬 더 도움이 될 것 같네요!

namespace 는 동일한 공간입니다. 파일이 다르더라도 같은 이름의 namespace라면 같은 namespace 인 것으로 처리 됩니다.

danc님의 프로필

danc

2021.11.05

읽고나니 확실히 이해가 잘 되네요! 특히 질문자이랑 같은 namespace 에대해 궁금했는데 바로 해결됬군요 ㅎㅎ