如果通过两个包含文件间接包含类,是否会有类重新定义?

Rn2*_*2dy 5 c++

如果我在classB.h和classC.h中包含类定义文件classA.h,那么如果classD.h同时包含classB.h和classC.h,那么是否会有类重定义?

tem*_*def 5

如果您正确使用包含警卫,这应该不是问题.特别是,如果你确保 - #include同一个文件两次是幂等的(#include相同的标题两次与#include-ing一次相同),那么这不会导致问题.如果classD.h包括classB.h,这将包括classA.h.然后,当它尝试包含classC.h并classC.h尝试包含时classA.h,则没有任何反应.但这很好,因为classC.h可以看到,classA.h因为它已经包含在内.