编写C++模板类时,大部分编译器不允许把类的申明和类成员函数的实现分放在.h和.cpp文件,必须放在同一个文件中或者main.cpp同时引用模板类的.h和.cpp。而通常的做法是把模板类的申明和函数实现都放在一个.h中。
原因是:当单独模板类.cpp和main.cpp两者单独编译时,模板类的T类型在使用前还未知类型,如何分配内存还无法确定,自然就无法生成目标文件了。