C++ 头文件是使用 .h 还是 .hpp

问题

我在写 C++ class 的定义部分时,代码都是放在后缀 *.h 文件中,最近在接触 Boost 库的时候发现里边使用的都是 *.hpp 后缀,那么两者在使用上有什么区别?

回答

*.hpp (或 *.hxx, *.hh …)只适用 C++,而 *.h C 和 C++ 都适用。

后缀命名不同的优点:

  1. 代码自动格式化。一些插件可以根据后缀来自动区分哪个是 C 代码,哪个是 C++,来进行对应的格式化。
  2. 语言区分。从后缀就可以很容易区分,这个文件下是 C 还是 C++。
  3. 文件命名。C++ 很容易引入 C 库,如果引入了一个 C 库内的头文件 feature.h,而 C++ 不得不对这个文件的代码进行面向对象设计,那么为了保持命名和语义上的统一,将 C++ 文件命名为 feature.hpp 是最佳的选择。

留下评论