【发布时间】:2015-03-22 18:31:22
【问题描述】:
我正在尝试编写一个具有一些基本功能的链表类,例如添加节点、删除节点和在列表中递归搜索。我已将列表的头部定义为私有变量,但我需要为递归搜索函数访问它,所以我尝试定义一个 GetHead() 函数,它将返回指向头部的指针。但是我在 NetBeans 中编译时遇到了一些问题。
这是类头
class List{
private:
typedef struct node{
int data;
node* next;
}*nodePtr;
nodePtr head;
nodePtr curr;
nodePtr temp;
public:
List();
void AddNode(int addData);
void DelNode(int delData);
void PrintList();
void SearchRecursive(nodePtr Ptr, int searchVal);
nodePtr GetHead();
};
GetHead()函数如下:
nodePtr List::GetHead(){
return head;
}
当我编译时,我得到了
error: unknown type name 'nodePtr'
error: cannot initialize return object of type 'int'
with an lvalue of type 'nodePtr' (aka 'List::node *')
我如何将指向结构节点的指针返回有问题吗?
【问题讨论】:
-
nodePtr GetHead();这不适用于public访问范围,因为nodePtr是在private类部分中声明的。 -
@πάνταῥεῖ 实际上,如果你使用
auto,它就可以工作。只要你不给私人的东西命名...... -
@juanchopanza 啊,谢谢!很高兴知道,没想到
auto。
标签: c++ pointers struct linked-list