多个cpp文件的一个标头

时间:2014-05-28 12:30:41

标签: c++

假设我有3个cpp文件:

Main.cpp
First.cpp
Second.cpp

现在我想在Main中使用First和Second中的函数。如果我只为cpp文件及其功能使用了一个头文件,那么有什么可抱怨的吗?

在First中使用header-file时会出现任何问题,因为我需要一个Second in Second函数吗?

5 个答案:

答案 0 :(得分:5)

只要您遵循ODR - One Definition Rule并且每个声明都是一致的,您就可以了。

标题通常用于提供函数和其他内容的声明,链接阶段(除非有更多涉及的内容,如模板)将负责解决这些依赖项。

我没有在设计上说什么 - 没有提供足够的信息。

答案 1 :(得分:1)

不,只要您为编译器提供每个声明的一个定义,就可以了。

然而,最佳做法是为每个头文件提供一个源文件:if" First"需要两者,你只需要包含First.h和Second.h

答案 2 :(得分:1)

一个标题,几个Cpps。 Cpps中的所有函数都可以在一个头文件中声明。 (例如:" general.h") 并且所有Cpps应该包括" general.h"文件。 然后定义声明函数的主体。

答案 3 :(得分:0)

就C ++而言,使用一个头文件并在两个文件之间拆分函数的实际实现不会有任何问题。然而,如果你需要来自" Second.cpp" in" First.cpp"也许你应该看一下每一个中发生的事情,也许功能应该分成另一个文件。

作为个人偏好我说你应该坚持为每个头文件都有一个cpp文件。如果您需要重构或再次移动实现,拆分实现只会导致后来的麻烦。

答案 4 :(得分:0)

如果您正在使用一种架构,在一个定义中混合使用服务器和客户端代码,请将它们分隔开不同的cpp文件,这样就可以了。