03:40:22 16
高级模板概念中,类模板声明,如: Template<typename T>class List 等同于带有形式类型参数的模板类,如: List<T> 并将其作为一种类型看待 所以本质上不区分类模板与模板类.
03:40:22
17
模板类的使用将直接透入对象的构造,因此, 允许模板类带有值参便理所当然了. template<unsigned int N> class bitset; 但是类型值参将导致不同的类模板描述,因 而决定了不同的值参值,生成不同的模板类 bitset<100> a; bitset<200> b; a = b; // error 值参值应为编译能识别的常量,值参多为整 型.
15
03:40:22
类模板(class template):侧重于模板的描述 (声明或定义),例如: Template<typename T>class List;//类模板声明 template<typename T> //类模板定义 class List{ Node<T> *first, *last; public: List(); void add(const T& c); void remove(const T& c); Node<T>* find(const T& c)const; void print()const; ~List(); 模板类(template class):侧重于模板的使用形式 }; 例如: List<T> //T为类型形参 List<Dog> //Dog是类型实参 形如List<T>形式的类,不管T是形参还是实参,本 书都称之为为模板类