我的类定义一直使用*.h文件,但在阅读了一些boost库代码后,我意识到它们都使用*.hpp。我一直很讨厌这个文件扩展名,我想主要是因为我不习惯它。

使用*.hpp而不是*.h的优点和缺点是什么?


当前回答

在我90年代早期的一份工作中,我们分别使用.cc和.hh作为源文件和头文件。在所有的选择中,我仍然更喜欢它,可能是因为它最容易打字。

其他回答

使用哪个扩展名并不重要。两种都可以。

我用*.h表示C,用*.hpp表示c++。

你可以随意命名你的include。

只需要在#include中指定全名。

我建议你使用C语言时使用.h,使用c++时使用.hpp。

它最终只是一种惯例。

正如这里许多人已经提到的,我也更喜欢使用.hpp来处理使用模板类/函数的纯头文件库。我更喜欢使用.h作为头文件,附带.cpp源文件或共享或静态库。

我开发的大多数库都是基于模板的,因此只需要头文件,但在编写应用程序时,我倾向于将声明与实现分开,最终使用.h和.cpp文件

幸运的是,这很简单。

如果您使用c++,您应该使用.hpp扩展名,并且您应该使用.h表示C或混合使用C和c++。

我最近开始在c++头文件中使用*.hpp。

原因是我使用emacs作为我的主编辑器,当你加载一个*.h文件时,它会自动进入c模式,当你加载一个*.hpp文件时,它会自动进入c++模式。

除此之外,我没有看到选择*.h而不是*.hpp或相反的理由。