2013-02-15 105 views
-1

我已經定義下面的類用於在鏈接列表中的節點:在另一個類中調用一個類的方法?

template <class T> 
struct ListItem 
{ 
    T value; 
    List<T> wordList; // <-------- 
    ListItem<T> *next; 
    ListItem<T> *prev; 

    ListItem(T theVal) 
    { 
     this->value = theVal; 
     this->next = NULL; 
     this->prev = NULL; 
    } 
}; 

上述類包含另一個類,即列表,它有自己的功能,其中之一是insertAtEnd。我創建了一個ListItem,我想通過調用insertAtEnd來更改它的wordList組件的值。這樣做的語法是什麼?

這裏的列表類:

template <class T> 
class List 
{ 
    ListItem<T> *head; 

public: 

    // Constructor 
    List();   //done 

    //test function 
    void displaylist(); 

    // Copy Constructor 
    List(const List<T>& otherList);  //done 

    // Destructor 
    ~List(); 

    // Insertion Functions 
    void insertAtHead(T item);  //done 
    void insertAtTail(T item);  //done 
    void insertAfter(T toInsert, T afterWhat); //done 
    void insertSorted(T item);     //done 

    // Lookup Functions 
    ListItem<T> *getHead();      //done 
    ListItem<T> *getTail();      //done 
    ListItem<T> *searchFor(T item);    //done 

    // Deletion Functions 
    void deleteElement(T item);     //done 
    void deleteHead(); 
    void deleteTail();       //done 

    // Utility Functions 
    int length();         //done 
}; 

下面是該insertAtTail功能的實現。

template <class T> 
void List<T>::insertAtTail(T item) 
{ 
    ListItem<T>* a = new ListItem<T>(item); 

    if(head==NULL) 
    { 
     head=a; 
    } 

    else 
    { 
     ListItem<T>* temp; 
     temp=head; 

     while(temp->next!=NULL) 
     { 
      temp=temp->next; 
     } 
     temp->next=a; 
     a->prev=temp; 
    } 
} 
+0

*「我已經創建了一個ListItem,我想通過調用insertAtEnd來更改它的wordList組件的值。」*也許顯示您迄今爲止所擁有的。您在這裏所做的只是一個decl和一個構造函數(以及一個缺少初始化程序列表,其中應該調用您的成員的copy-ctor)。 – WhozCraig 2013-02-15 14:10:04

+0

你應該尋找一些關於C++的教程。我甚至不確定這是否是有效的C++ ...首先嚐試[this](http://www.cplusplus.com/doc/tutorial/)。 – 2013-02-15 14:11:29

+1

'YourListItemVarName.wordList.insertAtEnd(.. params ...)' – WhozCraig 2013-02-15 14:14:44

回答

2

喜歡的東西

wordList.insertAtEnd(.... arguments ....); 
1
  1. 我不知道你的確切的使用情況,但我真懷疑一個ListItem應該有一個List
  2. 要使用wordList根本就this->wordList.insertAtEnd(........)this這裏不是強制性的)。
+0

我試圖創建的是一個函數,它接受一個包含數百個單詞的文件,創建一個包含另一個列表的每個節點的二維鏈表包含以特定字母開頭的所有單詞。 我試圖做的功能是這樣聲明的: 列表詞典() 我被指示添加一個列表 wordList對象在ListItem結構中繼續執行此任務。 – mrsinister 2013-02-15 14:20:56