在将模板的声明和定义放在使用该模板的文件中时,组织是包括定义的组织。例如:
main.cc
template <class Number> Number twice(Number original); template <class Number> Number twice(Number original ) { return original + original; } int main() { return twice<int>(-3); } |
使用模板的文件包括了包含模板声明和模板定义的文件时,使用模板的该文件的组织也是包括定义的组织。例如:
twice.h
#ifndef TWICE_H #define TWICE_H template <class Number> Number twice(Number original); template <class Number> Number twice( Number original ) { return original + original; } #endif |
main.cc
#include “twice.h” int main() { return twice(-3); } |
使模板头文件幂等是非常重要的。(请参见5.1.2 幂等头文件。)