gpt4 book ai didi

c++ - 初学者 C++ - 解释类定义

转载 作者:行者123 更新时间:2023-11-28 05:55:58 25 4
gpt4 key购买 nike

我是 C++ 的初学者,需要一些帮助来理解基础知识。这是我的类定义:

template <class T>
class List;
template <class T >
class Node {
friend class List<T>;
private:
Node *prev, *next;
public:
T data;
Node() :prev(), next() {}
Node * Prev();
Node * Next();
Node * InsertAfter(List<T> * list, const T& data);
Node * InsertBefore(List<T> * list, const T& data);
};

我不确定如何格式化我的构造函数

    Node() :prev(), next() {}

这里的代码段:

    Node * InsertAfter(List<T> * list, const T& data);
Node * InsertBefore(List<T> * list, const T& data);

这是否意味着该方法应该返回一个节点?

谢谢

最佳答案

我会像下面这样编写重写的默认构造函数:

Node() 
: prev(nullptr)
, next(nullptr)
{
}

默认构造函数应始终包含将数据成员初始化为零值或未初始化值(enum 名称为 UNKNOWNINVALID)。如果您的任何对象仍未初始化,如果有人试图对未初始化的对象执行任何操作,则归零会导致段错误。如果我们留下空的构造函数主体,这比内存损坏更容易调试。

关于c++ - 初学者 C++ - 解释类定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34151104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com