鱼儿慢慢游~~

导航

 

今天第一次写了模板类。在写的时候把声明和实现分开后,即.h文件和.cpp文件。在链接时提示找不到模板类中某个方法的定义。 

查阅资料发现:模板类在使用的时候。编译器需要找到它的定义。

即:

编译器使用模板,通过更换模板参数来创建数据类型。这个过程就是模板实例化(Instantiation)。
  从模板类创建得到的类型称之为特例(specialization)。 
  模板实例化取决于编译器能够找到可用代码来创建特例(称之为实例化要素,
  point of instantiation)。
  要创建特例,编译器不但要看到模板的声明,还要看到模板的定义。
  模板实例化过程是迟钝的,即只能用函数的定义来实现实例化。

 

而声明和实现分开后,我们#include了头文件,编译器找不到其实现,所以出错。 

posted on 2015-09-21 19:08  miss_UU  阅读(118)  评论(0编辑  收藏  举报