我正在尝试创建自己的双链表以获取学习经验。我的书显示了下面的节点结构,我想知道它是否等同于我创建的 Node 类?结构中的那个函数只是一种为结构中的每个数据类型赋值的构造函数吗?

//===== Struct =====

struct Node
{
    Node *next;
    Node *prev;
    std::string val;
    Node(const std::string &value, Node *nextVal = NULL, Node *prevVal = NULL) :
        val(value), next(nextVal), prev(prevVal) {}
};

//===== Class ====
class Node
{
public:
    Node(std::string value = "", Node *pVal = NULL, Node *nVal = NULL);
    virtual ~Node(void);

protected:
    Node *next;
    Node *prev;
    std::string val;
};

Node(std::string value = "", Node *pVal = NULL, Node *nVal = NULL)
{
    next = nVal;
    prev = pVal;
    val = value;
}

最佳答案

是的 - 就是这样。

这是一个包含结构构造函数示例的页面。

http://www.yolinux.com/TUTORIALS/LinuxTutorialC++Structures.html

关于c++ - struct 和 class 之间的差异以及为双链表构造节点?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10769149/

10-12 00:59
查看更多