程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c++-C++問題,關於模板類和類模板,求大神幫助

c++-C++問題,關於模板類和類模板,求大神幫助

編輯:編程綜合問答
C++問題,關於模板類和類模板,求大神幫助

不知道錯的原因,希望大神幫忙解決,不勝感激。

 #include<iostream>
using namespace std;
template <class T>
class List
{
public:
    List(T *elem);
    void Traverse();
private:
    typedef struct LNode
    {
        T *m_elem;
        struct LNode *next;
    }Node,*LinkNode;
    LinkNode head;
};
template <class T>
List<T>::List(T &elem)
{
    head=new Node;
    *(head->m_elem)=elem;
    head->next=NULL;
}
int main(void)
{
    double a=2.0;
    List<double>head(a);
    getchar();
    return 0;
}

最佳回答:


 #include<iostream>
using namespace std;
template <class T>
class List
{
public:
    List(T &elem);//修改,要和後面定義一致
    ~List();
    void Traverse();
private:
    typedef struct LNode
    {
        T *m_elem;
        struct LNode *next;
    }Node,*LinkNode;
    LinkNode head;
};
template <class T>
List<T>::List(T &elem)
{
    head=new Node;
    head->m_elem=&elem;//修改,head->m_elem未初始化,不能用*(head->m_elem)
    head->next=NULL;
}
template <class T>
List<T>::~List()//增加
{
    Node* p = head, *q;
    while (p)
    {
        q = p->next;
        delete p;
        p = q;
    }
    head=NULL;
}

int main()
{
    double a=2.0;
    List<double> head(a);
    getchar();
    return 0;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved