* .h或* .hpp用于类定义 [英] *.h or *.hpp for your class definitions
问题描述
我一直使用 *。h
文件作为我的类定义,但是在读了一些boost库代码后,我意识到他们都使用 * .hpp
。我总是对该文件扩展名有反感,我认为主要是因为我不习惯。
I've always used a *.h
file for my class definitions, but after reading some boost library code, I realised they all use *.hpp
. I've always had an aversion to that file extension, I think mainly because I'm not used to it.
使用<$ c有什么优点和缺点? $ c> *。hpp *。h
?
推荐答案
以下是对C和C ++头文件进行不同命名的几个原因:
Here are a couple of reasons for having different naming of C vs C++ headers:
- 自动代码格式化对于格式化C和C ++代码有不同的指导方针。如果标题由扩展名分隔,您可以设置您的编辑器自动应用适当的格式
- 命名,我一直在项目中有用C编写的库,在C ++中。由于标题通常具有相似的名称,即Feature.h vs Feature.hpp,它们很容易区分开来。
- 包含,也许你的项目有更适合的版本用C ++编写,正在使用C版本(见上面的点)。
记住,如果头文件是以它们实现的语言命名的,你可以很容易地找到所有的C头文件并检查C ++版本。 ,C是不 C ++,它可能是非常危险的混合和匹配,除非你知道你在做什么。正确命名您的来源有助于区分语言。
Remember, C is not C++ and it can be very dangerous to mix and match unless you know what you are doing. Naming your sources appropriately helps you tell the languages apart.
这篇关于* .h或* .hpp用于类定义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!