类属类中该怎么定义结构体成员

template <class T>
class A
{
    public:
        typedef struct a{T data;struct a* next;}node;
        node* func(node*){......};
        ................
};

这样定义会报错"[Error] 'node' does not name a type"
请问该如何解决?

你没有定义node类型。而func应该这么写:

node* func(node *p){......}