c++模板类作为友元类出现的问题

#include <iostream>

using namespace std;

template <class T>
class SimNode
{
    friend SimSpace<T>;
private:
    T data;
    int link;
};

template <class T>
class SimSpace
{
private:
    SimNode<T>* space;
};

int main()
{
    system("pause");
    return 0;
}

报错之后问题出现在

friend SimSpace<T>;

请问为什么?

阅读 3.5k
1 个回答

你的声明有问题,应该是

class SimNode
{
    
private:
    template <class T>      //声明不要漏了template <class T>,这是C++很蛋疼的一个地方
    friend class SimSpace;  
    T data;
    int link;
};
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题