为了让一些代码更易于阅读,我将它分割成多个文件。其中一个文件只包含2个初始化方法。值得用这些方法的声明来创建一个.h,包括那个,或者我应该直接包含.cpp,只有两种方法,是否值得符合标准?我应该总是将我的文件分割成声明(.h)和定义(.cpp)
回答
你不应该包括CPP文件,不管几个定义如何在其中:包括在其他几个cpp文件会产生重复的符号每个定义,导致链接错误。
如果你建立了在多个翻译单位使用(这是一个奇特的名字为cpp文件),你应该建立一个标题为它的类。模板没有cpp文件 - 只需要一个头文件。
虽然通常的做法是让一个CPP /头对每一类,它是确定包括在一个翻译单元的多个相关的类,并把所有的声明在一个头。
Thankyou,我会尽快接受。 – w4etwetewtwet
编译器不会阻止您在标题中添加多个相关类,但要小心!我有一个项目对我来说变得非常大,最终发现很难找到与数学库有关的类。即使它们都是相关的,如果我实际上将它们分开并保持1:1标题/翻译单元范例,我将花更少的时间来搜索事物。 –
@DJPeterson我同意,在一个标题中粘贴多个类应该是一个例外,而不是一个规则。关于唯一一次我认为是紧密耦合项目的“集群”的类,例如一个类和它的“朋友”比较器。这种情况在C++ 11中应该会少一些。 – dasblinkenlight
就像之前说的,你不包括.cpp文件。如果你的代码需要围绕项目,那么头文件是必须的。但是,您始终可以使用extern。 http://www.cplusplus.com/forum/general/21368/
A .cpp
包含的文件是错误的.h
文件。
.cpp
和.h
是对程序员(以及偶尔在工具链中使用的工具)有意义的扩展。如果你开始使用.cpp
文件,即使你说服你的工具链如何处理它,你也会迷惑其他程序员(包括你自己在几个月/几年)。
创建报头文件只设置的工具或功能有时可以接受的。调用该文件.cpp
不是。
- 1. 我应该用C++分开cpp和h文件吗?
- 2. C++如何正确地将.cpp分割成.cpp和.h
- 3. .cpp vs .h和我应该在哪里放置函数定义
- 4. 我把我的项目分割成.h和.c文件。这是我应该这样做的正确方法吗?
- 5. 我应该在.pch文件还是.h文件中定义宏?
- 6. 我应该在.cpp或.h文件中包含头文件?
- 7. 在.h和.cpp文件中分隔定义和声明时,是否可以内联getter和setter?
- 8. 我应该在.h文件还是在.cpp文件中放置POD结构?
- 9. 从.ui文件生成.h和.cpp
- 10. 声明头文件和cpp文件C++
- 11. 如何将构造函数明确声明为单独的.h&.cpp文件?
- 12. C++ .h和.cpp文件分开
- 13. 我不能在我的cpp文件中声明一个地图
- 14. 代码中的.h声明和定义的.cpp给出错误调用DLL时
- 15. 在C++ .h文件中定义和声明函数/方法
- 16. 模板和分裂成的.h/.cpp文件
- 17. 我应该声明我的byte []
- 18. 从.h文件生成.cpp源文件
- 19. 将类声明放在.cpp文件中
- 20. 我有.wav文件。我想将该文件分解成部分
- 21. 我应该同时使用头文件和cpp /源文件吗?
- 22. 我应该声明这是const int成员变量的类吗?
- 23. 使用C++模块时,是否将函数声明(.hpp文件)与它们的定义(.cpp文件)分开?
- 24. 有没有办法定义在单独的.h和.cpp文件中的名称空间中声明的函数?
- 25. CPP | .h文件(C++)
- 26. C++正向声明.h文件中的结构并在.cpp文件中定义结构
- 27. 在* .h中声明的未定义引用已在另一个* .h中声明
- 28. 我司的声明总是出来0
- 29. 如何在.hpp/.cpp文件中定义/声明类实例?
- 30. 我可以在c#项目中添加.h和.cpp文件吗?
**永远不要包含.cpp文件。决不。无论如何。** – 2013-07-15 20:23:30
@ H2CO3够了。为什么不,我已经看到它在一些例子中完成了? (不是说它是正确的,只是寻找解释为什么它不是)。 – w4etwetewtwet
'ld:体系结构x86_64的1个重复符号' – 2013-07-15 20:26:36