许多帖子非常坚定,源代码不应该放在标题中,并且头文件应该保持在最低限度.我一直坚持使用我自己的代码,但我想使用别人的代码来实现一个特定的目标(这里的代码记录在http://ftp.arl.mil/random/).
我注意到这基本上是一个定义类的巨型头文件.将它保留在头文件中可以吗?我应该将它全部复制到.cpp文件并创建一个新的.h,它只是声明函数,结构等吗?
如果我按照我的建议把它分成.cpp和.h,它会起作用吗?或者类是否需要在标题中才能被所有源代码访问?
需要在多个cpp文件中看到的声明(声明存在某些内容)应该放在头文件中.单个cpp文件本地的声明应该在cpp文件本身中.
定义(提供函数体或分配/初始化变量)通常应该放在cpp文件中,但并不总是如此.
您需要了解的问题是编译器是否有足够的信息来完成其工作,如果它已经看到头文件而不是相应的cpp文件.
例如:如果编译器已经看到声明(方法原型),你可以调用一个方法 - 除非该方法是通用的(模板化方法或模板化类的成员)或内联,在这种情况下编译器需要看到定义(方法体)也是.
因此,正常的方法进入cpp文件; 模板化方法进入头文件; 内联方法进入头文件(等等).
在其他情况下,定义属于头文件,包括静态成员常量.这一切都回到给编译器一方面需要的信息,另一方面最小化单独的可编译单元之间的耦合.同样,没有严格的规则,只是指导程序与编写代码的开发人员的知识和经验相结合.
.h文件通常在许多.cpp文件之间共享.全局变量和函数代码不应该在头文件中,因为它会在链接期间产生重复.
常量,定义,函数头和类声明在头文件中都很好.您不必多次声明相同的内容,并且可以在.cpp文件之间共享定义.
| 归档时间: | 
 | 
| 查看次数: | 9301 次 | 
| 最近记录: |