template<typename T>
struct node
{
T Val;
node* prev;
node* next;
};template<typename T>
class LinkList
{
public:
LinkList();
~LinkList();
void Init();
void Addlen();
node<T>* GetBlank();//从空链表里取一个结点放到实链表里
void DelAll();
void PutBlack(T Data);//把实链表里的结点放回到空链表里---------这个函数完成不了
void Show();

protected:
node<T>* m_Null_head;//空链表头
node<T>* m_Full_head;//实链表头
int m_len;//链表长度
private:

CRITICAL_SECTION m_critical_section;

};因为要管理很多种结构体链表,所以写了个模板,遇到问题了。
struct TEA
{
  int data;
.....};
typedef LinkList<Tea> TEA_GROUP;TEA_GROUP  m_tea;
TEA  lp_tea=&m_tea.GetBlank()->Val;
m_tea.PutBlack(lp_tea);//-------这里出错了  
cannot convert parameter 1 from 'TEA *' to 'struct node<struct TEA> *'
PutBlack这个函数不知道怎么写,本意是通个Val这个值找到所存放的结点,然后再放回空链表里面。
感谢大家的关注

解决方案 »

  1.   

    这个函数应该这么写:
    void PutBlack(node<T> Data);
      

  2.   

    cannot convert parameter 1 from 'TEA *' to 'struct node<struct TEA> '
    改成那样后提示还是差不多
      

  3.   

    template<typename T>
    struct node
    {
    node(T obj):Val(obj),prev(0),next(0){}
    T Val;
    node* prev;
    node* next;
    };
    提供一个构造函数吧
      

  4.   

    typedef struct
    {
    int data;
    .....
    }TEA,*TEA;
    原来
      

  5.   

    m_tea.PutBlack(lp_tea);//-------这里出错了   
    cannot convert parameter 1 from 'TEA *' to TEA '

      

  6.   

    PutBlack(node<T>* pData);试试
      

  7.   


    cannot convert parameter 1 from 'TEA *' to 'struct node<struct TEA> *'