函数实现不放在头文件的原因,及何时可以放头文件的情况
转载自 http://hi.baidu.com/pope123/blog/item/344407d5512953d450da4b6c.html 1 、引子 这篇文章的题目念起来比较怪,不好意思,我是参照《爱在西元前》这样的句式构造来的,希望读者能喜欢。原本计划写成《头文件里的类实现》,可是想了想还有函数,如果写成《头文件里的类和函数的实现》,又太长,所以就这样了。 在平常的 C/C++ 开发中,几乎所有的人都已经习惯了把类和函数分离放置,一个 .h 的头文件里放声明,对应的 .c 或者 .cpp 中放实现。从开始接触,到熟练使用,几乎已经形成了下意识的流程。在 Symbian OS 下编程,则更是如此,再小的类也会分成两个文件,几乎没有人想去改变。 尽管这样的做法无可厚非,而且在不少情况下是相对合理甚至必须的,但我还是要给大家介绍一下把实现全部放置到头文件中的方式,给出可供大家使用的另一个选择。同时针对这一做法,也顺便说一下其优缺点以及需要注意的情况。 我是一个很喜欢简洁的人,多年以来甚至养成了这样的癖好,如果一个功能是能够用一条语句实现的,那就不要用两条语句。在我看来,如果给别人提供一份可以复用的代码的话,最优雅的状态莫过于仅仅提供一个头文件就全部搞定。 之所以不太喜欢引入源文件,最重要的原因是源文件往往会带来工程文件的变化;而且,在使用过程中也会增加一些额外的操作,例如,在一个组织良好的工程里,头文件和源文件很有可能是位于不同的目录,这样就会多带来一次文件复制操作。 2 、正文 2.1 顾虑 我遇到有不少人不使用头文件来包含实现,往往是出于以下几种顾虑: 1、 暴露了实现细节 2、 头文件被包含到不同的源文件中,会导...