假设我有两节课。一个是BaseClass
,一个是DerivedClass
,是BaseClass
的派生类。我需要能够在另一个文件中创建两个类的对象。通过使用#include
语句将派生类包含在新文件中,我可以直接访问派生类,并间接访问基类(因为派生类将其包含在其文件中)。使用这种间接"访问"的方法是否更好?到基类,或者直接将它与文件中的派生类一起包括在内?
答案 0 :(得分:5)
一般建议是 包括您使用的内容 。
如果您正在编写API规范,并且该规范没有明确详细说明类的基本派生性质,那么对该关系的任何更改都可能会破坏您依赖的文件所使用的包含。
同样请参阅here。
如果您确定BaseClass
始终是DerivedClass
的基础,那么可能几乎不需要同时包含这两者,但为了清楚起见,我会继续执行此操作,它会显示您的意图。
答案 1 :(得分:3)
包括所有需要的标题而不是依赖于传递性给出了两个好处:
如果您的头文件将被重构,则无需更改cpp文件。
它清楚地表明了您对其他开发者的意图。