模板函数/模板类实例化问题
问题描述对下面每条带标签的语句,解释发生了什么实例化(如果有的话),如果一个模板被实例化,解释为什么,
如果一个模板没有被实例化,解释为什么没有。
代码如下
程序代码:
template <typename T> class Stack { }; void f1(Stack<char>); // (a) class Exercise { Stack<double> &rsd; // (b) Stack<int> si; // (c) }; int main() { Stack<char> *sc; // (d) f1(*sc); // (e) int iObj = sizeof(Stack< string >); // (f) }是不是这样的
1. a, b和d没有实例化。
2. c, f只实例化了类, 没有实例化任何类成员
3. e, 实例化了Stack<char> 同时实例化了copy 构造函数
上面的答案经过测试得出的结论,
但是不知道原理是怎样的?
难道是依据是否分配内存为准? 如果是这样的话,c 和 f也没分配内存啊
求指教?
[此贴子已经被作者于2017-6-12 17:25编辑过]