我在学习数据结构--C++书时,输入编译有错误在(vc5.0下编译),按书写的方式为“friend SimSpace<T>;”  我把它改为“friend  class SimSpace<T>;”也不行,不知为什么。源码如下:tempalte <class T>
class Node
{
     friend class SimSpace<T>;
public:
     Node();
     ~Node();
private:
     T m_Data;
     int m_iLink;
};class SimSpace
{
public:
     SimSpace(int iNode=100);
     ~SimSpace();      //others ignored
      //....
private:
      Node<T> *m_lpElement;
      int m_iNodeNums;
};

解决方案 »

  1.   

    NODE 里只有两个私有变量
    申明了friend 就可以访问class NODE 里的私有成员变量
    这样就可以保证NODE不会被其他无关人员访问
      

  2.   

    不好意思 没有看清问题
    “friend SimSpace<T>;”  不要加class
    但是在CLASS NODE 之前要申明 CLASS SimSpace
      

  3.   

    对不起,程序当中SimSpace类也为模扳类,漏写了template <class T>,即SimSpace类申明为template <classs T> class SimSpace;
    在C++中node类前面不需先申明SimSpace符号。
      

  4.   

    friend class SimSpace<T>
    改为 friend T