从外部访问链表私有变量 class
Accessing Linked List private variable from outside class
我目前正在开发一个程序,该程序将访问另一个人编写的链表。我假设此人已将 head 和 tail 变量声明为私有,但我想遍历他们的链表。
这是一个可能的链表实现
/* 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;
};
我想访问指向头部的指针,以便能够遍历链表。
如何在无法更改节点的情况下访问该指针?不能仅仅为了安全而改变。提前致谢!
你不能,因为它是私人的。
其他人需要向您提供访问权限,例如 public 成员函数。
举个例子,你可以看看this问题。
设计此列表的人必须提供一个接口,您可以访问存储在列表中的数据。
现在只能在列表中添加数据,然后全部输出。
通常这样的容器提供允许遍历列表的迭代器。
人应该写这样的接口。否则列表没有任何用处。
我目前正在开发一个程序,该程序将访问另一个人编写的链表。我假设此人已将 head 和 tail 变量声明为私有,但我想遍历他们的链表。
这是一个可能的链表实现
/* 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;
};
我想访问指向头部的指针,以便能够遍历链表。
如何在无法更改节点的情况下访问该指针?不能仅仅为了安全而改变。提前致谢!
你不能,因为它是私人的。
其他人需要向您提供访问权限,例如 public 成员函数。
举个例子,你可以看看this问题。
设计此列表的人必须提供一个接口,您可以访问存储在列表中的数据。
现在只能在列表中添加数据,然后全部输出。
通常这样的容器提供允许遍历列表的迭代器。 人应该写这样的接口。否则列表没有任何用处。