是只有用到的时候才会实例化, 但是你在多个 cpp 中用了多次的时候就会在每一个用到的 cpp 中实例化一次, 每个 cpp 实例化出来的都编译到对应的 obj 中去了. 把多个 obj 链接成 exe 后 exe 中就会有多次了.
刚才打错了, 我是问 "如果在一个.h文件里面分开写了, 又会怎么样呢? 会只实例化一次吗?" 比如: template<typename T> T add(T a, T b); template<typename T> T add(T a, T b) { return a+b; } template int add<int>(int a, int b);
6.1w+
社区成员
24.9w+
社区内容