从类外部访问链表私有变量

Accessing Linked List private variable from outside class

本文关键字:变量 链表 访问 外部      更新时间:2023-10-16

我目前正在开发一个程序,该程序将访问另一个人编写的链表。我假设这个人已经将头和尾变量声明为私有的,但我想遍历他们的链表。

这是一个可能的链表实现

/* singly linked list node */
struct SLLNode {
    int data;
    SLLNode *next;
};
/* singly linked list implementation */
class SLinkedList {
public:
    SLinkedList();
    ~SLinkedList();
    void addToTail(int newData);
    void addToHead(int newData);
    friend std::ostream& operator<<(std::ostream&, const SLinkedList&);
private:
    SLLNode *head;
    SLLNode *tail;
};

我想访问指向头部的指针,以便能够遍历链表。

如何在无法更改节点的情况下访问该指针?不能仅仅为了安全而改变。提前感谢!

你不能,因为它是私有的。

其他人需要为您提供访问权限,例如具有公共成员功能。

举个例子,你可以看看这个问题。

设计此列表的人必须提供一个接口,您可以访问存储在列表中的数据。

现在,您只能将数据添加到列表中并全部输出。

通常,此类容器提供允许遍历列表的迭代器。这个人应该写这样一个接口。否则,该列表没有任何用处。