簡體   English   中英

如何從方法返回嵌套的類指針?

[英]How to return nested class pointer from method?

我有兩個類: DatabaseNode的嵌套類,是有可能有一個方法Node將返回一個Node*

我試圖將方法nextNode返回類型設置為Node*但是出現編譯錯誤: 'Node' does not name a type

數據庫

class Database
{
    public:
        Database();
        Database& operator+=(const Client&);
        ~Database();
    private:
        class Node //node as nested class
        {
            public:
            Node(); //ctor
            void setHead(Client*&); //add head node
            Node* nextNode(Node*&); //return new node from the end of he list
            private:
            Client* data; //holds pointer to Client object
            Node* next; //holds pointer to next node in list
        };

        Node *head; //holds the head node
};

Databse.cpp中的nextNode方法聲明:

Node* Database::Node::nextNode(Node*& start)
{
....
....
    return current->next;
}

謝謝。

Node嵌套在Database ,因此您需要返回類型的范圍:

DataBase::Node* Database::Node::nextNode(Node*& start)
^^^^^^^^^^

該參數已在范圍內,因此您可以保持原樣。

除了juanchopanza的答案,C ++ 11的尾隨返回類型還允許您在范圍內聲明它:

auto Database::Node::nextNode(Node*& start) -> Node* {
    // ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM