从外部类访问Linked List私有变量

时间:2015-01-07 17:50:15

标签: c++ class linked-list private-members

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

这是一个可能的链表实现

/* 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;
};

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

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

2 个答案:

答案 0 :(得分:1)

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

另一个人需要提供对您的访问权限,例如公共成员函数。

举个例子,您可以查看this个问题。

答案 1 :(得分:1)

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

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

通常这样的容器提供允许遍历列表的迭代器。 这个人应该写这样的界面。否则列表没有任何用处。