Class 另一个模板类的模板类友元函数
我有一个由一对模板类组成的树,其中一个需要访问另一个的私有成员,最好只限于那些实际需要访问的成员函数。这是我的课程的简化说明:Class 另一个模板类的模板类友元函数,class,function,templates,private,Class,Function,Templates,Private,我有一个由一对模板类组成的树,其中一个需要访问另一个的私有成员,最好只限于那些实际需要访问的成员函数。这是我的课程的简化说明: // Forward declaration template <typename K, typename V> class Tree; template <typename K, typename V> class Node { public: typedef typename Node<K, V>* N
// Forward declaration
template <typename K, typename V> class Tree;
template <typename K, typename V> class Node {
public:
typedef typename Node<K, V>* NodeP;
// ...
private:
K key;
V val;
// Child nodes
NodeP left;
NodeP right;
};
template <typename K, typename V> class Tree {
public:
typedef typename Node<K, V>::NodeP NodeP;
// ...
void clear() { del(root); }
private:
// Root node
NodeP root;
void del(NodeP start)
{
if (start->left != NULL)
del(start->left);
if (start->right != NULL)
del(start->right);
delete start;
}
};
我不明白的是如何将del和树的其他成员函数声明为节点类的朋友。我试着用这句话让全班同学成为朋友:
模板好友类树
这可以编译,但这是:
模板友空树::delNodeP
。。。不。我想知道是不是我让他们太依赖彼此的实例了?有没有办法做我想做的事?谢谢