【问题标题】:Node Class inside the LinkedList classLinkedList 类中的节点类
【发布时间】:2013-03-16 22:10:56
【问题描述】:

我想创建一个LinkedList类,我必须把Node类放在LinkedList类里面,你喜欢我怎么做?

我认为是这样的:

Class LinkedList {
  private:
    class Node* head;
  public:
    class Node {
      private:
        int data;
        Node* next;  
        Node* prev;
    };
};

但我觉得这样不好。

【问题讨论】:

  • 在 C++ 中,每个名称都必须在使用前声明。您可以编写 struct Node* head; 以便在运行时声明 Node,但要重新排列代码。
  • 你说得对,我改了..

标签: c++ linked-list


【解决方案1】:

我会这样做

class LinkedList {
  private:
    struct Node {
        int data;
        Node* next;  
        Node* prev;
    };
    Node* head;
  public:
    ...
};

Node 中的任何内容都不需要私有,因为它在 LinkedList 之外不可用。

【讨论】:

  • 好主意.. 但是结构在 C 中,不是吗?我认为将其定义为类,但随后我将不得不在两个类的公共中定义很多 get、set 函数..
  • 结构是 C 和 C++。在 C++ 中,结构和类之间几乎没有区别。如果需要,您也可以在结构中定义 get 和 set 函数。结构和类之间的主要区别在于,结构中的所有内容默认都是公共的,而在类中默认情况下是私有的。但同样,您可以在结构中拥有私有项目,在类中拥有公共项目。
猜你喜欢
  • 2015-09-19
  • 2014-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-24
  • 1970-01-01
  • 2017-05-17
相关资源
最近更新 更多