为什么List类必须包含一个Node结构作为私有成员C ++

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结构作为私有成员有什么好处?

谢谢!

Chr*_*lor 5

在List类中将Node结构声明为私有声明的原因是使其对实施保持私有。这将确保实现的特定细节不会泄漏到公共接口中。这是从内部实现细节中抽象接口的有效方法,可以使这些细节自由更改,而不会影响List类公共接口的用户。