https://stackoverflow.com/questions/152555/h-or-hpp-for-your-class-definitions
我在写 C++ class 的定义部分时,代码都是放在后缀 *.h
文件中,最近在接触 Boost 库的时候发现里边使用的都是 *.hpp
后缀,那么两者在使用上有什么区别?
*.hpp
(或 *.hxx
, *.hh
...)只适用 C++,而 *.h
C 和 C++ 都适用。
后缀命名不同的优点:
- 代码自动格式化。一些插件可以根据后缀来自动区分哪个是 C 代码,哪个是 C++,来进行对应的格式化。
- 语言区分。从后缀就可以很容易区分,这个文件下是 C 还是 C++。
- 文件命名。C++ 很容易引入 C 库,如果引入了一个 C 库内的头文件
feature.h
,而 C++ 不得不对这个文件的代码进行面向对象设计,那么为了保持命名和语义上的统一,将 C++ 文件命名为feature.hpp
是最佳的选择。