如果我正在创建一个功能不太多的小功能类,可以将它们全部放入头文件吗?所以对于一个特定的班级来说,只有.h没有.cpp才能与之配合。(C++).h文件中的整个类?
回答
是的,这是可以接受的。它一定会编译。但是,如果它使代码组织更清洁,那么这可能是好的。大多数模板定义已经不再需要,所以你没有做任何前所未闻的事情。尽管如此,这个类可能有一些缺点依赖于其他类。如果最终不得不将整个定义包含在使用该类的其他文件中,则与仅具有简短的类声明相比,它可能会产生额外的编译时间。
如果这似乎是一个真正的问题,你可以测量你的编译时间。
如果您可以获得一份副本,The c++ Programming Language(和许多其他书籍)有关于源代码组织和将代码分离为.h和.cpp文件的具体优点的详细部分。
是的,这是可以接受的。此外,如果你做模板,并且你没有支持export
的编译器,那么你没有选择。
但是,请注意它可以增加依赖性,从而使编译速度变慢。
如果您将在未来的代码或项目中使用该头文件,并且希望与其他人共享,那将会很好。
取决于你如何链接。为了避免看到消息,如重新定义blah,第13行文件blah.h中的前一个定义只是将声明放在.cpp中。
这取决于你的目标。
对于一个宠物项目来说,这是可以接受的,但是任何事情都是真的。
对于一个真正的项目,你需要问自己一些问题:
- 你有几个依赖呢? (是)
- 是你的逻辑/实现可能经常改变吗? (不,或者看下一个问题)
- 这个班多少钱? (没有太多或太多但不会改变)
如果回复满足您,请继续。
这主要是依赖管理问题。通过将头文件中的方法定义放入头中,它们可能会被编译器内联,这意味着每次更改时都必须重新编译依赖于此类的所有内容。
模板是这样做的,但是模板通常只有很少的依赖关系(其他包括),并且您相对被迫像这样继续(尽管您可以将非模板相关代码外部化以减少依赖关系)。
对于依赖性管理最重要的真正的大型项目,我建议不要。在这些项目中,稳定的ABI以及促进二元兼容性变化的能力在发生问题时是生命保护者,他们非常值得开发者“轻微”的不便。
无论如何,请不要在班级中定义方法。即使内联,您也可以在类声明之后定义它们。这使得人们更容易阅读(几个月后自己)来快速掌握界面。
- 1. C++中的类(cpp文件&h文件)
- 2. C++ - 从.h文件获取.cpp文件中的类变量
- 3. CPP | .h文件(C++)
- 4. C - .h和.c文件中的冲突类型
- 5. 包括2个类的.h文件
- 6. C++着的.h头文件
- 7. 访问C++中的.h文件中的类
- 8. C和.h文件中的结构
- 9. h中的C++ /参数。文件
- 10. Objective-C的.h文件中未发现
- 11. Makefile为多个.c和.h文件
- 12. C++如何从一个类的cpp文件中创建一个.H
- 13. 关于C程序中的.c文件和.h文件?
- 14. 混合.c和.h文件
- 15. 如何实现.h文件中定义的类C++
- 16. 模板函数类型在.h文件中的C++
- 17. 使用结构类型定义在多个.C&.h文件
- 18. 需要在这个c + + .h文件类中的向量的工作语法
- 19. 头文件(.h)中创建C编程
- 20. C在.h文件中声明arrayList
- 21. 在.h文件中声明类
- 22. 的Visual C++,组织的.h和.cpp文件中的文件夹
- 23. 在.h文件包含在多个cpp文件中的类中定义了整型静态常量
- 24. C++中的.h
- 25. 使用结构类给出.h文件中C++
- 26. C++ .h和.lib文件到C#
- 27. Objective-C中的多个类定义在一个.h和.m中
- 28. 包含在.h文件和.c文件中的区别
- 29. 什么时候一个.c文件没有关联.h文件?
- 30. 在另一个类的相同.h/.m文件中定义一个类别
IMO,如果你的方法大多是单行的,那么在类中定义方法并不会真正分散注意力,有时会增加代码的可理解性;实际上为什么有人不想创建一个单独的.cpp文件的唯一原因是因为该类很小,并且方法都很平凡。 – 2010-09-28 07:36:50
@Lie Ryan:我同意在班级中间定义一行(如'empty' /'size'),而不会打扰太多......但是,很难定义一行之间的限制,班轮,因为它不适合在屏幕上而被包裹的单线内衬,比包裹的单线内衬短两条线,......之后,这是所有人打来的电话。 – 2010-09-28 07:49:43
但是,您不需要定义硬限制,只需按照您的直觉感受即可。最后,编译器仍然会产生相同或相等的输出。许多编程风格指南促进一致的风格,只是因为一致性很容易量化,如果某些东西总是看起来相同,那么它是一致的;然而在许多情况下,这种对一致性的痴迷是以忽视难以量化的潜在收益为代价的。可读性和可理解性不容易量化;因此,在风格指南中经常会被忽略。 – 2010-09-28 08:06:01