rhu*_*arb 18 c++ templates header
我看到一些代码,其中开发人员在.h文件中定义了一个类模板,并在.hpp文件中定义了它的方法.这让我有点意外.
在处理模板时,C++中是否有特定的约定以及它们应该包含哪些文件?
例如,假设我有一个Vector
带有矢量操作方法的类模板(加,减,点等).如果模板参数是float
(比较运算符),我还想要专门化某些函数.你如何在文件之间分离所有这些(指定.h,.hpp,.cpp).
Joh*_*ing 18
通常(根据我的经验,YMMV)hpp
文件是#include
-ed CPP文件.这样做是为了将代码分解为两个物理文件,一个主要包含和一个实现详细信息文件,您的库的用户不需要知道.它是这样完成的:
#include
)template<...> class MyGizmo
{
public:
void my_fancy_function();
};
#include "super_lib_implementation.hpp"
Run Code Online (Sandbox Code Playgroud)
#include
直接这样)template<...> void MyGizmo<...>::my_fancy_function()
{
// magic happens
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11784 次 |
最近记录: |