2014-03-19 43 views
0

我有一個完全正常工作的LinkedList,用int變量來運行。我正在改變它與對象的工作,但我感覺卡到指針。有什麼建議?更改LinkedList接受對象而不是Int?

這是節點的結構:

typedef struct Node 
{ 
    int data; 
    Node* next; 
}* nodePointer; 

這是ADDNODE功能:

void LinkedList::addNode(int dataToAdd) 
{ 
    nodePointer nodeToAdd = new Node; 
    nodeToAdd->next = NULL; 
    nodeToAdd->data = dataToAdd; 

    if(head != NULL) 
    { 
    current = head; 

    while(current->next != NULL) 
    { 
    current = current->next; 
    } 

    current->next = nodeToAdd; 
    }//end if 

    else 
    { 
    head = nodeToAdd; 
    }//end else 
}//end addNode 

是它的一些簡單的改變的事?

+1

你到底有什麼麻煩?將「int data」和「int dataToAdd」更改爲您想要存儲的任何對象類型將是第一步(您可能還想開始調查模板)。 – Yuushi

+2

我同意。新的聲明看起來像'someObjectType data'和'someObjectType dataToAdd' –

回答

1

這取決於您將使用的對象的類型。

對於任何默認的=操作有意義的類,您可以使用您現在使用的相同代碼,用對象的類型替換int

對於更復雜的對象(例如,一個持有指向動態分配成員的指針),您必須爲此類定義適當的=運算符,或使用複製函數以確保對象被正確複製

相關問題