Class 个模板和朋友 Class 个
Class templates and friend Classes
我有 Node class,它与包含 Node 类型元素的 BinaryTree class 是朋友。我想制作任何类型的 BinareTree,所以我在两个 classes 上都使用了模板。就像在这段代码中一样:
template <class T>
class Node
{
T value;
Node<T> *left, *right;
friend template <typename T> class BinaryTree; // here is the problem
};
template <class Y>
class BinaryTree{...};
如果我将朋友 class BinaryTree 用作模板,我需要什么语法?
我的目标是能够写:
BinareTree<int> tree;
有没有我想到的更好的方法?
谢谢!
如果您查找 template friends 的语法,您会找到正确的方法:
class A {
template<typename T>
friend class B; // every B<T> is a friend of A
template<typename T>
friend void f(T) {} // every f<T> is a friend of A
};
尽管您可能只想与特定的朋友成为朋友:
friend class BinaryTree<T>;
我有 Node class,它与包含 Node 类型元素的 BinaryTree class 是朋友。我想制作任何类型的 BinareTree,所以我在两个 classes 上都使用了模板。就像在这段代码中一样:
template <class T>
class Node
{
T value;
Node<T> *left, *right;
friend template <typename T> class BinaryTree; // here is the problem
};
template <class Y>
class BinaryTree{...};
如果我将朋友 class BinaryTree 用作模板,我需要什么语法? 我的目标是能够写:
BinareTree<int> tree;
有没有我想到的更好的方法? 谢谢!
如果您查找 template friends 的语法,您会找到正确的方法:
class A {
template<typename T>
friend class B; // every B<T> is a friend of A
template<typename T>
friend void f(T) {} // every f<T> is a friend of A
};
尽管您可能只想与特定的朋友成为朋友:
friend class BinaryTree<T>;