我正在尝试调用一个遍历单链列表的函数,将每个数据条目增加一个(数据条目是经过模板化的,但在这种情况下为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));“