Cho*_*Sun 0 c++ computer-science linked-list data-structures
Mark Weiss的数据结构书中Linked List的实现使我有些困惑。
List类在内部包含一个Node结构,如下所示。
...
class List {
private:
struct Node {
...
};
...
public:
...
private:
int theSize;
Node *head;
Node *tail;
};
Run Code Online (Sandbox Code Playgroud)
我的问题是,在List类内部确实有一个Node结构真的必要吗?我认为只要List类包含指向标头和尾节点的指针就足够了。将Node结构作为私有成员有什么好处?
谢谢!
在List类中将Node结构声明为私有声明的原因是使其对实施保持私有。这将确保实现的特定细节不会泄漏到公共接口中。这是从内部实现细节中抽象接口的有效方法,可以使这些细节自由更改,而不会影响List类公共接口的用户。