헤더 파일에 다른 헤더 파일이 포함되지 않고 해당 * .cpp 파일에 모든 종속성이 포함되어 있어야하며 올바른 순서로 포함되는 스타일을 포함하는 헤더를 보았습니다. 좋은 옛날에 이것으로 빌드 의존성 추적을 더 쉽게 만들 수있는 것 같습니다 (그러나 나는 단지 추측하고 있습니다). 요즘 좋은 이유가 있을까요?C 헤더 파일에 다른 헤더 파일을 포함하지 않는 이유는 무엇입니까?
파일 "BH"
#ifndef _B_h_
#define _B_h_
// Note we do not #include "A.h" that contains class A declaration.
class B
{
public:
A a; // An A object.
};
#endif // _B_h_
파일 "B.cpp"
#include "A.h" // Must include this before B.h, otherwise class A not defined in B.h
#include "B.h"
...
당신이 그것을 원하는 경우 자신의 질문 제목을 편집 할 수 있습니다. –
실생활에서 그 예를 보지 못했다고 생각합니다. 컴파일하지 않았기 때문입니다. 모든 멤버 객체의 전체 유형에 액세스 할 수 있어야합니다. –
소원을 부여했습니다. :) –