我有一个ResourcePtr<T>
类模板和 ResouceManager<T>
模板。我希望两个人成为 friend 。如果我执行以下操作,则会出现编译错误;我该如何解决这个问题?
template<class T>
class ResourcePtr
{
friend class ResourceManager<T>;
};
template<class T>
class ResourceManager
{
friend class ResourcePtr<T>;
};
error C2059: syntax error : '<'
error C2238: unexpected token(s) preceding ';'
最佳答案
像往常一样,对于共同事物:在定义另一个之前声明一个。
template<class T>
class ResourceManager;
template<class T>
class ResourcePtr
{
friend class ResourceManager<T>;
};
template<class T>
class ResourceManager
{
friend class ResourcePtr<T>;
};
关于c++ - 模板彼此交友,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6276893/