【发布时间】:2020-02-25 18:53:10
【问题描述】:
我在 C++ 方面的经验非常有限,所以如果我的问题是愚蠢的或基本的,请原谅。如下:
当用像 c++ 这样的语言做更大的项目时,你可能有一个很大的继承线,比方说,在主文件中包含每个派生类是正常的做法吗? 有什么办法可以规避这个问题,还是我错过了一些平庸的东西?
谢谢。
【问题讨论】:
-
如果
A是B的基类是C的基类,每个都有自己的头文件a.h,b.h,c.h,然后c.h将(希望并且通常)包括b.h,其中将包括a.h。如果您只需要c.h的功能,则无需#includea.h和b.h。 -
例如,如果 B 类有 5 个子类,如何在不明确包含它们的情况下从每个子类中获取功能 你需要如果您想在同一个翻译单元中全部使用它们,请包含它们。
-
@Jens 子类是什么意思?我总是在我的脑海中得到那个模糊的方向。 base 和 derived 是更多的 C++ 术语。如果您当前的
.cpp文件直接使用类B的对象,则只包含b.h。如果您当前的.cpp文件直接使用B、C、J和Q类的对象,则明确包括b.h、c.h、j.h和q.h。不要依赖其中任何一个来继续从任何其他人(因此相互包括)继承。 -
@John 你的最后一条评论更好地解释了我试图表达的观点。如果您使用 X.h,请包含 X.h。如果你不这样做,就把它排除在外。如果 Y.h 需要 X.h 并且不包含 X.h,则修复 Y.h。
-
@Jens 您确定需要五个单独的标题吗?如果它们紧密相关,它们可能都在一个标题中。在某些情况下,收集常见标头的“上帝”标头也可能适用。
标签: c++ oop inheritance header-files