在另一个类中调用一个类的方法



我为链表中的节点定义了以下类:

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;
    }
};

上面的类包含另一个类,即List,它有自己的函数,其中一个是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;
    }
}

类似的东西

wordList.insertAtEnd( .... arguments ....);
  1. 我不知道你的确切用例,但我真的怀疑ListItem应该有List
  2. 要使用wordList,只需执行this->wordList.insertAtEnd(........)即可(此处this不是必需的)

相关内容

  • 没有找到相关文章

最新更新