C++ 如何编写公共函数来返回链表的头指针?

C++ 如何编写公共函数来返回链表的头指针?,c++,struct,linked-list,C++,Struct,Linked List,我得到一个语法错误:缺少“;”在我的getHead函数声明的“*”之前(是的,我想不出更好的名称了)。此函数的目的是返回头指针 class Newstring { public: Newstring(); void inputChar ( char); void display (); int length (); void concatenate (char); void concatenate (Newstring); bool sub

我得到一个语法错误:缺少“;”在我的getHead函数声明的“*”之前(是的,我想不出更好的名称了)。此函数的目的是返回头指针

class Newstring
{
public:
    Newstring();
    void inputChar ( char);
    void display ();
    int length ();
    void concatenate (char);
    void concatenate (Newstring);
    bool substring (Newstring);
    void createList ();
    Node * getHead (); // error
private:
    struct Node
    {
        char item;
        Node *next; 
    };
    Node *head;

};
遇到getHead()时,编译器无法获取
节点的定义

Node * getHead()
在使用节点之前先放置节点的定义

  struct Node
    {
        char item;
        Node *next; 
    };
遇到getHead()时,编译器无法获取
节点的定义

Node * getHead()
在使用节点之前先放置节点的定义

  struct Node
    {
        char item;
        Node *next; 
    };

在使用之前声明节点。

在使用之前声明节点。

必须在getHead()上方声明节点结构


必须在getHead()上方声明节点结构


要回答Brandon关于保持结构私有,或在添加声明时保持当前代码的问题,方法如下:

class Newstring
{

public:
    struct Node
    {
        char item;
        Node *next; 
    };
    Newstring();
    void inputChar ( char);
    void display ();
    int length ();
    void concatenate (char);
    void concatenate (Newstring);
    bool substring (Newstring);
    void createList ();
    Node * getHead (); // error
private:

    Node *head;

};

要回答Brandon关于保持结构私有,或在添加声明时保持当前代码的问题,方法如下:

class Newstring
{

public:
    struct Node
    {
        char item;
        Node *next; 
    };
    Newstring();
    void inputChar ( char);
    void display ();
    int length ();
    void concatenate (char);
    void concatenate (Newstring);
    bool substring (Newstring);
    void createList ();
    Node * getHead (); // error
private:

    Node *head;

};

另一种方法是通过在
节点

class Newstring
{
    struct Node; // here the declaration
public:

    Newstring();
    void inputChar ( char);
    void display ();
    int length ();
    void concatenate (char);
    void concatenate (Newstring);
    bool substring (Newstring);
    void createList ();
    Node * getHead (); // error
private:
    struct Node
    {
        char item;
        Node *next; 
    };
    Node *head;

};

另一种方法是通过在
节点

class Newstring
{
    struct Node; // here the declaration
public:

    Newstring();
    void inputChar ( char);
    void display ();
    int length ();
    void concatenate (char);
    void concatenate (Newstring);
    bool substring (Newstring);
    void createList ();
    Node * getHead (); // error
private:
    struct Node
    {
        char item;
        Node *next; 
    };
    Node *head;

};

有没有办法让结构保持私有?Brandon>你可以只声明结构,添加一个答案来说明如何。有没有办法让结构保持私有?Brandon>你可以只声明结构,添加一个答案来说明如何。好的,我知道了。我刚换了私人和公共街区。谢谢大家!请注意,您可以有多个私有/受保护/公共块。我刚换了私人和公共街区。谢谢大家!请注意,您可以有多个专用/受保护/公用块。