C++中模板类的声明和实现分离问题
2017-08-29
有两种方式:
第1种:使用 .tpp 文件实现类模板的接口与实现的文件分离
在.h文件中放接口,在.tpp文件中放实现,但这种方法得在.h文件中,类的定义
下面
#include ".tpp"文件,如下:
//TestTemplate.h文件
#pragma once
template <typename T>
class TestTemplate{
public:
TestTemplate(const T& a): data(a){}
void print();//需要实现的方法
private:
T data;
};
#include "TestTemplate.tpp" //在类的定义下面放置#include ".tpp"文件
(其实,在这种情况下,实现文件TestTemplate.tpp文件,不一定要取这个名字,可以随便取个名字,如: abc.t、 xysearf.cod等

本文介绍了C++中实现类模板声明与实现分离的两种方法:使用.tpp文件和显式声明模板实例。第一种方法是在.h文件中声明接口,在.tpp文件中实现,然后在.h文件中包含.tpp文件。第二种方法是在.h文件中声明接口,在.cpp文件中实现,并在.cpp文件中显式声明模板实例。这两种方法都能有效分离模板的接口和实现,提高代码组织性。
最低0.47元/天 解锁文章
1958

被折叠的 条评论
为什么被折叠?



