在.cpp中我是这样使用CList列表变量的:
CList<struct node ,struct node&> L;
struct node *Nn=new (struct node);
我想让这两个变量作为类的成员变量,我该怎么做啊?
结构体在.h中是这样定义的。
typedef struct node{ 
CString s1;
CString s2;
CString s3;
} Node;

解决方案 »

  1.   

    类是你自己定义的吧
    typedef struct node{ 
    CString s1;
    CString s2;
    CString s3;
    } Node;class A
    {
    private:
    CList <struct node ,struct node&> L;
    struct node *Nn; 
    };这样不就可以实现了吗?
      

  2.   

    是自己定义的类。按楼上说的放入 .h中会出错。
    把CList  <struct node ,struct node&> L;放在.h中,会出现如下错误:
     see reference to class template instantiation 'CList<struct node,struct node &>' being compiled
    在.pp中,*Nn=new (struct node); 会出现如下错误:
    use of undefined type 'node'
      

  3.   

    typedef struct Node{ 
    CString s1;
    CString s2;
    CString s3;
    } node;class A
    {
    private:
    CList  <struct node ,struct node&> L;
    struct node *Nn; 
    }; 再试试
      

  4.   

    typedef struct {  
    CString s1;
    CString s2;
    CString s3;
    } NODE, *PNODE;class A
    {
    CList <NODE, NODE&> L;
    PNODE Nn;
    public:
    A()
    {
    Nn = (PNODE)new NODE;
    }
    };
      

  5.   

    typedef struct Node{ 
    CString s1;
    CString s2;
    CString s3;
    } node; 
    //  这样改,更错了!
    //  我的结构体引用没有错误的,所有放在函数中运行,都是没有问题的。
      

  6.   

    CList   <struct node ,struct node&> L; 
    struct node *Nn;  把这两句的struct去掉。
      

  7.   

    你得头文件包含了node的结构体声明没有?
      

  8.   

    ok了,jiuchang和akirya说的是对的,
    结构体声明放在{ }外面,我原想放在外面不是成全局变量了吗,所以没放。
    声明改放在{ }外面之后就OK了,但全局变量里也没有该结构体啊,该结构体跑到和类一个级别位置上去了。不明白?