标签:模板 define 不同 name 二义性 两种 注意 ++ 很多
最近的数据结构实验频繁地遇到了模板,之前对这一块接触不多,遇到了很多问题,放到这里总结一下。
template<typename T>class BinaryTree; template<typename T> class BinaryTreeNode {//define the node of binary tree friend class BinaryTree<T>; //friend class BinarySearchTree<T>;
如果不加入第一行,则无法通过编译。
template <typename Type>
class LinkQueueNode {
定义二叉树类时:
template<typename T>
class BinaryTree {
而在二叉树的一个成员函数中,我们可以使用:
void BinaryTree<T>::LevelOrder(BinaryTreeNode<T>*root) { /*二叉树的层序遍历*/ LinkQueue<BinaryTreeNode<T>*>tQueue;//链队列,节点类型为二叉树节点指针类型
注意这里把链队列的类型实例化为了二叉树节点类指针的类型!这样,在最后将二叉树类型实例化时,使用链队列对象就完全没有问题。
标签:模板 define 不同 name 二义性 两种 注意 ++ 很多
原文地址:https://www.cnblogs.com/jiading/p/9838024.html