新手请教c++ 问题
我要请教的问题是c++ primer plus(第六版),第十章编程练习题8,题目如下:
//
可以将简单列表描述成下面这样:
可存储0或多个某种类型的列表;
可创建空列表;
可在列表中添加数据项;
可确定列表是否为空;
可确定列表是否为满;
可访问列表中的每一个数据项,并对它执行某种操作。
可以看到,这个列表确实很简单,例如,它不允许插入或删除数据项。
请设计一个List类来表示这种抽象类型。您应提供头文件list.h和实现文件list.cpp,前者包含类定义,后者包含类方法的实现。您还应创建一个简短的程序来使用这个类。
该列表的规范很简单,这主要旨在简化这个编程练习。可以选择使用数组或链表来实现该列表,但公有接口不应依赖于所做的选择。也就是说,公有接口不应有数组索引、节点指针等。应使用通用概念来表达创建列表、在列表中添加数据项等操作。对于访问数据项以及执行操作,通常应使用将函数指针作为参数的函数来处理:
void visit(void (*pf)(Item &));
其中,pf指向一个将Item引用作为参数的函数(不是成员函数),Item是列表中数据项的类型。Visit()函数将该函数用于列表中的每个数据项。
我的问题是:1、“pf指向一个将Item引用作为参数的函数(不是成员函数)”,这个函数不是成员函数该怎么写?
2、pf函数的返回类型为void,用它来做visit()的参数有何用途?
我的理解是,这个题目应该是建议用visit()做成员函数来访问列表,但是括号中的参数我真的无法理解。
求大神指点迷津,或者直接给出程序也可以,小弟感激涕零!