我是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);
};
我不确定如何格式化我的Constructor
Node() :prev(), next() {}
这里的代码段:
Node * InsertAfter(List<T> * list, const T& data);
Node * InsertBefore(List<T> * list, const T& data);
这是否意味着该方法应该返回一个节点?
感谢
我会编写如下的重写默认构造函数:
Node()
: prev(nullptr)
, next(nullptr)
{
}
默认构造函数应始终包含将数据成员初始化为零值或未初始化值(名称为UNKNOWN
或INVALID
的enum
值)的例程。如果您的任何对象仍然未初始化,如果有人试图对未初始化的对象执行任何操作,则归零会导致段故障。如果我们留下空的构造函数体,这比内存损坏更容易调试。