![](/img/trans.png)
[英]How would you the "this" pointer of the base class from a method of a nested class?
[英]How to return nested class pointer from method?
我有兩個類: Database
和Node
的嵌套類,是有可能有一個方法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.