如何在链表遍历中正确使用函数指针

时间:2019-09-22 04:32:10

标签: linked-list function-pointers traversal

我正在尝试调用一个遍历单链列表的函数,将每个数据条目增加一个(数据条目是经过模板化的,但在这种情况下为char类型)。

如何正确调用我的visit()函数来完成此操作?

我当前在名为sl的链表上的通话是     sl.visit((increaseByOne)(c));

我已经尝试过在* IncreaseByOne调用之前使用*,并摆弄()的位置。

'''c ++

template <class T>
void increaseByOne(T& x) {
   x++;
}

'''

'''c ++

template <class T>
void SortedList_LL<T>::visit(void(*fp)(T& data)) {
    Node<T> *q;
    T prev;
    q = list.getHead();

   for (q; q; q = q->next) {
      prev = q->entry;
      (*visit)(q->entry);
      cout << "Value " << prev << " incremented to " << q->entry << endl;
    }
}

'''

所有数据条目(当前为char类型)应加1。我收到一条错误消息,内容为“ main.cpp:在函数” int main()”中: main.cpp:81:31:错误:无效使用void表达式     sl.visit((increaseByOne)(c));“

0 个答案:

没有答案