参数化
:::info template机制帮助我们将类定义中“与类型相关”和“独立于类型之外”的两部分分离开来
- 在一个模板类中,于类型相关的部分会被抽取出来,形成一个或者多个参数
:::
template <typename valType> //参数化
class BTnode{
public:
private:
valType _val;
int _cnt;
BTnode* _lchild;
BTnode* _rchild;
};
class template 的定义
为模板类定义一个inline函数,在类内的定义和非模板类中的情况相同,但是在类外定义却有所区别
:::info class scope运算符中BinaryTree需要对模板类型加以限定;之后就被认为处在class范围内,因此定义时不需要对后面的BinaryTree()加限定 :::template <typename elemType>
inline BinaryTree<elemType>::
BinaryTree():_root(0)
{}