|
|
1
9
在C++中,有两种方法可以分离这两种帮助。首先,如果你想在不改变接口的情况下更新一个库,那么C++文件中的代码意味着你只需更新库而不是库加头。其次,它隐藏了实现。也就是说,它强制人们只从接口的角度来看待你的类,如果代码写得很好,那么这个问题应该引起他们的关注。最后,这个分离附带的Interface+文档有一种微弱的清洁性。这是你必须习惯的事情,但过了一段时间你会觉得很自然(意见)。 |
|
|
2
5
不要忘记构建时间。 将实现代码放在头文件中会使它们更容易被更改。并且更改头文件将导致包括这些头文件的所有cpp文件的重建,从而增加生成时间。这在大型项目中可能很重要。 我也很喜欢将实现隐藏在我的库的用户面前。不幸的是,这对模板类不起作用。 我的经验法则是:将声明保存在.h文件中,将定义保存在.cpp文件中。 |
|
|
3
2
如果你想将C++与已经编译的二进制文件(典型地使用库时)相结合,那么在一个地方定义符号是比较酷的。假设您需要为二进制文件中的全局内容定义外部符号。如果在同一个文件中有.cpp和.h代码,则必须为每个此类文件定义二进制文件的符号。以两个文件的方式,您可以只拥有一个.h,其中包含二进制文件的定义,以及许多使用它的.cpp文件。 |
|
|
4
1
主要的区别在于
此外,如果您在
|
|
|
5
1
有趣的是,C类似乎在C/C++方向上有一定的进展,最近引入了部分类。 在IDE中,这一点的特殊优势在于,Visual Studio设计器将修改处理可视化控件或数据成员的类部分及其布局,而不必担心弄脏驻留在单独文件中的方法(应用程序逻辑)。 |
|
6
1
我会回应@wheaties并添加一些其他项目
|
|
7
1
在最近的一个大型项目中,我想使用的系统的作者在.h文件中放置了大量代码。当将它们的.h文件包含到我自己的源代码中时,它会向我的文件添加更多的依赖项。在包含了他们项目的依赖项之后,我最终遇到了typedef冲突。如果他们把代码分开,只把声明放在.h文件中,就会简单得多。我建议使用POSIX类型,并且只将声明放入.h文件中。 |
|
|
8
0
我看到很多响应都提倡分离,主要是为了构建时间和实现隐藏好处。这两个都是肯定的优点,不过我要说的是反例: Boost .
大多数Boost库使用
|
|
|
9
0
至于比较部分
其他几点已经提到了。 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |