因此,当标题读取时,我想创建一个模板类,并将方法/函数实现放入相对源文件中。在对互联网进行一些研究之后,我发现了一些令人费解的解决方案,其中包括制作额外文件并将其包含在标题中。
我知道可以将所有实现放在头文件中,它可以正常工作。另外一个问题是:作为将所有实现放在头文件中的最佳解决方案是否通常是可接受的,因为在与C中的ADT的比较中你有点想隐藏源文件中的实现,是否是相同的情况就在这儿?
一个小例子:让我说我想要一个2-D点的平面作为字符,我想使用下面的代码。
#ifndef POINT_H_
#define POINT_H_
template <class T>
class Point {
T* x;
T* y;
public:
Point();
};
#endif
#include "Point.h"
template <class T>
Point<T>::Point(){
x=new T;
y=new T;
}