2012-07-01 2 views
5

모든 헤더/cpp 파일에 필요한 모든 것을 # 포함해야합니까? 나는 2 차원 게임 엔진 atm (주로 연습)에서 일하고 있는데, 코드를 재검토하면서 나는 거의 모든 파일에서 문자열과 벡터를 반복한다는 것을 알았다. 이것이 문제이며 어떻게 처리해야합니까?큰 프로젝트에서 #include를 사용하는 방법은 무엇입니까?

필자가 작성한 모든 수업이나 모듈은 자신의 두 다리이므로 말하자면 항상 의견을 갖고 있습니다. 나는 제네릭 프로그래밍을 정말로 즐긴다. (나는 내 ​​자신의 스크립트 언어를 엔진에 포함시키고있다. 내 스크립트 엔진도 포함하고있다.) 또한 오버 헤드와 혼란을 가져올 수 있다는 것을 깨닫는다.

+0

올바른 # ifdef가있는 경우 헤더를 여러 번 포함해도 문제가 발생하지 않습니다. # 2에서도 똑같습니다. –

+0

헤더 파일을 만들고 싶으면 모두 포함하고 대신 포함 시키십시오.하지만 그 이상으로는 가지 않을 것입니다. 그리고 나는 그 파일에 너무 많은 것을 넣거나 그 파일을 보드 전체에 포함시키는 것에 대해주의를 기울일 것입니다. – twain249

+0

일반 프로그래밍에 익숙하다면 c/C++의 "#include"가 융통성 있고 불편 함을 느낄 수 있습니다. 당신이해야 할 일은 c/C++에 익숙해지고 c/C++로 생각하는 것입니다. :) – ciphor

답변

5

나는 필요한 경우에만 <string><vector>을 붙입니다.

개별 헤더 파일을 독자적으로 만드는 것에 대해서는 Google C++ 스타일 가이드가 include order을 어떻게 다루는지를 좋아합니다. 기본적으로 항상 foo.cpp에 다른 모든 내용이 포함되기 전에 해당하는 foo.hpp 포함을 나열하십시오. 그 방법으로, 우리는 foo.hpp이 그 앞에 포함될 것을 기대하지 않을 것이고 거기에 없으면 실패 할 것임을 안다.

+0

한 번만 Google에서 제공하는 가이드 라인과 매우 유사합니다. –

2

문제가되지 않습니다. 모든 파일에 절대 최소 종속성을 포함시켜야합니다.

관련 문제