天天看點

【bug總結】未定義的辨別符

今天用鄰接表實作圖時,遇到了如下所示的bug:“未定義的辨別符”

class AdjacencyLinkedGraph :public Graph
{
private:
    struct Node
    {
        int elem;
        Node* next;
        Node(int x, Node* p = nullptr) :elem(x), next(nullptr) {}
    };
    //......
    Node* deleteNode(Node* head, int target);
public:
    //......
};

//......
Node* AdjacencyLinkedGraph::deleteNode(Node* head, int target)
{
   //......
}

//傳回類型Node*處提示未定義的辨別符!
//根據文法提示有兩種修改方式:

//1、
AdjacencyLinkedGraph::Node* AdjacencyLinkedGraph::deleteNode(Node* head, int target)
{
   //......
}

//2、在前面添加
using namespace AdjacencyLinkedGraph::Node;		//本例中仍然報錯
           

總結:傳回類型是類的成員是要添加作用域