我的 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
成为友元,需要转发声明类模板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++ - 如何将模板实例化声明为类的友元?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46065248/