为什么本地定义的函数void List::traverse(ACCESSFUN f)不合法啊

maori 2011-04-28 04:41:27
为什么本地定义的函数void List::traverse(ACCESSFUN f)不合法啊?
代码如下:

//list.h
#ifndef __LIST__
#define __LIST__

#include "quad.h"

typedef void (*ACCESSFUN)(QUADPTR);
struct Node
{
QUADPTR data;
Node *next;
};

class List
{
private:
Node *head, *tail;

public:
List();
List(const List& l);
~List();
void push_back(const QUADPTR quad);
void traverse(ACCESSFUN f);
};

#endif
//end of list.h



//list.cpp
#include <iostream>
#include <string>
using namespace std;

#include "list.h"

List::List() : head(NULL), tail(NULL) {}

List::List(const List& l) : head(l.head ), tail(l.tail ) {}

List::~List()
{
Node *p = head, *q;
while (p != NULL)
{
q = p;
p = p->next;
delete q;
}
}

//insert element into the tail of list

void List::push_back(const QUADPTR quad)
{
Node *p,*q;
p=head;
while(p!=NULL)
{
if(q)
{

q->data=quad;
tail->next = q;
q->next=NULL;
q = tail;

}

}
void List::traverse(ACCESSFUN f)
{
Node *p=head;

while (p != NULL)
{
f(p->data);
p = p->next;
}
}
...全文
127 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
就想叫yoko 2011-04-28
  • 打赏
  • 举报
回复
:)[Quote=引用 2 楼 maodexiayutian 的回复:]

呜呜,找到错误了,少了个花括号。。。
[/Quote]
maori 2011-04-28
  • 打赏
  • 举报
回复
呜呜,找到错误了,少了个花括号。。。
bdmh 2011-04-28
  • 打赏
  • 举报
回复
单独测试traverse这部分是没错的

64,685

社区成员

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

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