0

与 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':看起来像一个函数定义,但没有参数列表;跳过明显的主体”。

我试图在谷歌搜索,但没有用。任何建议请。

4

1 回答 1

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();
};
于 2013-02-19T23:21:44.347 回答