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 に答える