CPP模板学习

  • 1.C++ 模板,模板的声明和定义都放在同一个.h文件中,不然会出现undefined reference to。因为模板类它是一个模板,只有应用了具体的类型之后,才会实例化。如果分开在.h和.cpp两个文件中,在编译器编译cpp文件的时候,因为也是以template <typename T> 开头,这不是具体的实例,不会有具体的代码生成。所以还是没有定义。
  • 2.当有多个重载模板对一个调用提供同样好的匹配时,应选择最特例化的版本。
  • 3.对于一个调用,如果一个非函数模板与一个函数模板提供同样好的匹配,则选择非模板版本
  • 4.在定义任何函数之前,记得声明所有重载的函数版本。这样就不必担心编译器由于未遇到你希望调用的函数而实例化一个并非你所需的版本。
  • **5.—————–