missmzt

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

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

即:

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

 

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

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

分类:

技术点:

相关文章:

  • 2022-02-03
  • 2021-12-30
  • 2022-01-26
  • 2022-12-23
  • 2021-12-20
  • 2021-09-09
  • 2022-01-26
  • 2022-12-23
猜你喜欢
  • 2021-12-11
  • 2021-10-28
  • 2021-12-19
  • 2022-12-23
  • 2021-08-17
  • 2022-12-23
  • 2021-12-14
相关资源
相似解决方案