Bra_Hancock
2017-05-02 08:40
采纳率: 29.4%
浏览 1.9k

C++ 成员变量作同一个类的成员函数参数 逻辑有什么问题

下面是创建链表的部分代码。
为了在析构函数中delete所有new出来的节点,我在链表的成员中加了个变量来保存链表的头(因为析构是无法带参数的啊)。
然后在DeleteAllNodes()的参数报错了,“a nonstatic member reference must be relative to a specific object”。
我觉得按照运行顺序,在调用DeleteAllNodes()之前,headNode已经指向了一个正确的值,不知道哪有问题。

class Node
{
public:
    int data;
    Node *next;
    Node();
    //Node(int values);
    //~Node();
};

Node::Node()
{
    data = 0;
    next = NULL;
}

class MyList
{
public:
    int ListSize;
    Node *headNode;
    MyList();
    void DeleteAllNodes(Node *headnode);
    ~MyList();
};

MyList::MyList()
{
    ListSize = 0;
    headNode = NULL;
}

void MyList::DeleteAllNodes(Node *headNode2 = MyList::headNode)
{
    if (headNode2 == NULL)
    {
        return;
    }
    Node *nextNode;
    while (true)
    {
        nextNode = headNode2->next;
        delete headNode2;
        headNode2 = nextNode;
        if (headNode2 == NULL)
        {
            break;
        }
    }
}

MyList::~MyList()
{
    DeleteAllNodes();
}

(没有C币了见谅)

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

相关推荐 更多相似问题