继承和包括

时间:2018-02-13 07:33:39

标签: c++ inheritance include

假设我有两节课。一个是BaseClass,一个是DerivedClass,是BaseClass的派生类。我需要能够在另一个文件中创建两个类的对象。通过使用#include语句将派生类包含在新文件中,我可以直接访问派生类,并间接访问基类(因为派生类将其包含在其文件中)。使用这种间接"访问"的方法是否更好?到基类,或者直接将它与文件中的派生类一起包括在内?

2 个答案:

答案 0 :(得分:5)

一般建议是 包括您使用的内容

如果您正在编写API规范,并且该规范没有明确详细说明类的基本派生性质,那么对该关系的任何更改都可能会破坏您依赖的文件所使用的包含。

同样请参阅here

如果您确定BaseClass始终是DerivedClass的基础,那么可能几乎不需要同时包含这两者,但为了清楚起见,我会继续执行此操作,它会显示您的意图。

答案 1 :(得分:3)

包括所有需要的标题而不是依赖于传递性给出了两个好处:

  1. 如果您的头文件将被重构,则无需更改cpp文件。

  2. 它清楚地表明了您对其他开发者的意图。