Is there any clear rule for how and when to include *.h ?
Sometime i found some of the *.h work well at A.h or at A.cpp.
Sometime i found if C.h was inclued by B.h, and i only need include B.h at A.h for the execute A.cpp. If i still included C.h at A.h. Does C.h will be compiled twice or not?