/
...
/
/
九. 类模板
Search
Try Notion
九. 类模板
类模板声明头
template <typename Type> class Stack { private: Type a ; ... public: bool isempty() ; ... } //成员函数也用模板替代 //域解析必须为模板,故所有成员函数均为模板函数 template <typename Type> bool stack<Type>::isempty(){...} ;
Copy
C++
成员模板
在模板类中创建模板类型
将模板用作成员
template <template <typename T> thing > class crab { private: thing<int> a; ... } //根据传入的模拟来决定thing的类型
Copy
C++
模板类可继承,可嵌套,可递归
递归:myclass< myclass<int, int>, int >
实例化 具体化
同模板函数...略
template <class T1, int>...可以实现部分具体化
模板参数-|-类参数
template <template <typename T>class thing1, typename thing2 > //前者,传入一个模板,后者传入一个类 //thing1<int>中thing1被替换为我们传入的模板 //thing2 被替换为我们传入的类
Copy
C++
模板类友元函数
非模板:仅在类中以函数形式声明友元,需要在类外逐个定义重载
约束模板:类外定义函数模板,在类中声明函数的具体化
非约束模板:在类内定义模板,所有改模板的实例化都视作友元