1. c++中的 .h .cpp .hpp文件的作用
.h放声明,.cpp放实现,.hpp就是声明与实现在一起,比如模块类。。
2.c++中什么时候使用.hpp文件
分文件编写类模板
类模板的声明和定义要写在一个.hpp文件中,声明和定义不可以分开,因为分文件的话,main.cpp中只引入.h,在类模板进行二次编译的时候,无法找到类的定义,会出错。所以要将其声明和定义放到一个头文件中。类模板必须要写在.hpp文件中。
3.hpp文件与模板
开门见山就一句话,.hpp文件是c++中默认模板实现文件。
大家都知道.cpp是c++的实现文件,那么要使用.hpp文件呢?这就要从模板的编译和链接说起。
模板的编译过程会分成两部分。一般大家会将对应的模板的定义和实现写在同一个文件中,而有时为了便利,我们也会将模板的实现文件和定义文件分开编写,这时在使用模板的时候,我们就不能像往常一样,包含模板的定义文件(.h),这样会报链接失败的。这时的正确的做法是xx.cpp包含 模板的实现文件(.cpp)而不是定义文件(.h)。
//模板定义文件
#pragma once
template <typename T>
T Add(T num1, T num2);