Bra_Hancock 2017-05-02 08:40 采纳率: 0%
浏览 1958
已采纳

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条回答 默认 最新

      报告相同问题?

      相关推荐 更多相似问题

      悬赏问题

      • ¥15 如何抓这个函数的包wx.updateShareMenu
      • ¥15 需要数据分析!时间紧!
      • ¥15 关于免费论文查重系统的问题。
      • ¥15 朋友们,这个sim函数是出了什么问题了呢
      • ¥15 【MRT数据导入问题】MRT处理modis数据提示opening input header file怎么解决?
      • ¥15 嵌入式系统综合设计题有会的教一下嘛?
      • ¥15 yolov5转onnx验证出错
      • ¥15 proteus仿真LCD不点亮
      • ¥15 C语言红绿灯时间问题
      • ¥15 matlab仿真实现定位算法