我们可以在不同的翻译单元引入相同的类模板定义,
但是不能在相同的翻译单元引入相同的类模板定义
类模板当中的成员函数如果没有在实例化后没有对应的实现,只要不被调用,也没有关系。
为什么有时候需要把函数的定义放在外面?
因为如果把定义都放在类的定义内部,有时候会显得比较“臃肿”。
模板函数的类外定义相对复杂,如下图所示,所以建议还是类内定义
最经典的类模板 vector_gcc源码
可以声明一个函数模板为一个类的友元
类模板的实例化,特化与实例推导
我们可以在不同的翻译单元引入相同的类模板定义,
但是不能在相同的翻译单元引入相同的类模板定义
类模板当中的成员函数如果没有在实例化后没有对应的实现,只要不被调用,也没有关系。
为什么有时候需要把函数的定义放在外面?
因为如果把定义都放在类的定义内部,有时候会显得比较“臃肿”。
模板函数的类外定义相对复杂,如下图所示,所以建议还是类内定义
最经典的类模板 vector_gcc源码
可以声明一个函数模板为一个类的友元