与C ++基础相关。 我正在创建一个单链表。
class Linked_List
{
public: Linked_List();
~Linked_List();
//Member Functions
struct node* getHead(void);
private:
struct node{
int d;
struct node* next;
}*head;
};
struct node (Linked_List::*getHead)(void)
{
return head;
}
我收到此错误:
“错误C2470:'getHead':看起来像一个函数定义,但是没有参数列表;跳过明显的主体”。
我试图在谷歌搜索但没有用。任何建议PLZ。
答案 0 :(得分:5)
您不需要指向成员函数的指针,您只想为该函数提供定义:
Linked_List::node* Linked_List::getHead()
{
return head;
}
另请注意,函数定义中不需要struct
关键字,而必须使用类的名称限定结构node
的名称,该类的名称在其定义的范围内
此外,不需要指定空参数列表的void
关键字。因此,我建议您按如下方式重写类定义:
class Linked_List
{
private:
struct node
{
int d;
struct node* next;
};
node *head;
public:
Linked_List();
~Linked_List();
node* getHead();
};