C++规定,模板是按需实例化的。
这决定了函数模板、类模板成员函数和类模板静态数据成员不能像普通函数、普通类的成员函数和普通类的静态数据成员那样把定义放在源文件中,声明放在头文件中。
假如把模板分开来写,
当编译器编译实现文件时,因为是模板,根据按需实例化原则,此时不会产生任何实例化类,也不会生成任何函数代码,当别的文件中调用该模板时,只能调用模板的声明文件,而实现文件,全部为空。
C++规定,模板是按需实例化的。
这决定了函数模板、类模板成员函数和类模板静态数据成员不能像普通函数、普通类的成员函数和普通类的静态数据成员那样把定义放在源文件中,声明放在头文件中。
假如把模板分开来写,
当编译器编译实现文件时,因为是模板,根据按需实例化原则,此时不会产生任何实例化类,也不会生成任何函数代码,当别的文件中调用该模板时,只能调用模板的声明文件,而实现文件,全部为空。