新手请教c++ 问题

u011187286 2013-07-26 10:28:03
我要请教的问题是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()做成员函数来访问列表,但是括号中的参数我真的无法理解。
求大神指点迷津,或者直接给出程序也可以,小弟感激涕零!
...全文
169 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ri_aje 2013-07-27
  • 打赏
  • 举报
回复
void (*pf)(Item &) 是函数指针,说的是这个。

void print (Item&) { /* do something to the current Item */ }
void (*pf)(Item &) = print;
sequence.visit(pf); // for each Item in the sequence, apply pf/print.
中间那步赋值没什么用,主要是让你知道 pf 具有指向函数的功能。

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧