c++中在使用第三方开源库的时候经常会接触.hpp文件。hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该cpp文件即可,无需再 将cpp加入到project中进行编译。使用起来非常方便。

最近本人也写了个.hpp文件,跟平常一样,首先定义了一个类和各种成员函数,接着在下面实现了各种类的方法,结果在使用的时候编译器提示所有类的成员函数在obj中被重复定义。而这个hpp文件中没有全局变量和方法,#ifndefine #define #endif宏也已经加了。


后来再打开几个开源库的hpp文件研究过后,发现将类的方法在定义的时候直接实现就可以了,如果将方法的定义和实现分开的话就会出现重复定义的问题。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐