我的node
类需要相应的linked
类成为 friend 。我写成
template <typename T>
class node{
T value;
node<T> *next;
friend class linked<T>;
};
template <typename T>
class linked{
linked();
~linked();
node<T> *head;
};
我收到一个编译错误,抱怨
linked
不是类模板。如何声明linked<T>
为node<T>
的 friend ? 最佳答案
如果要使用相同的模板参数linked
实例化T
作为 friend ,则需要首先转发声明类模板linked
。
// forward declaration
template <typename T>
class linked;
template <typename T>
class node {
...
friend class linked<T>;
// or since C++11 you can
friend linked<T>;
};
template <typename T>
class linked {
...
};
关于c++ - 如何将模板实例化声明为类(class)的 friend ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46065248/