使用构造函数在Double链接列表中初始化指向NULL的指针

时间:2014-10-06 03:11:23

标签: c++ syntax constructor doubly-linked-list

我正在尝试初始化类Dlist的新对象。声明新对象后,指针第一个最后一个应该是 NULL 。当我首先声明Dlist temp 然后 - 但是构造函数没有被识别,编译器给它们像 0x0 这样的值。我不确定为什么构造函数被识别。

// dlist.h
class Dlist {
private:
// DATA MEMBERS
struct Node
{
    char data;
    Node *back;
    Node *next;
};

Node *first;
Node *last;

// PRIVATE FUNCTION
Node* get_node( Node* back_link, const char entry, Node* for_link );


public:

// CONSTRUCTOR
Dlist(){ first = NULL; last = NULL; }  // initialization of first and last 

// DESTRUCTOR
~Dlist();

// MODIFIER FUNCTIONS
void append( char entry);
bool empty();
void remove_last();

//CONSTANT FUNCTIONS
friend ostream& operator << ( ostream& out_s, Dlist dl);

};           
#endif

// implementation file
int main()
{
Dlist temp;
char ch;

cout << "Enter a line of characters; # => delete the last character." << endl
<< "-> ";


cin.get(ch);
temp.append(ch);

cout << temp;
return 0;
}

1 个答案:

答案 0 :(得分:1)

0x0为NULL。此外,通过构造函数的初始化列表可以更有效地完成类成员的初始化:

Dlist()
    : first(nullptr)
    , last(nullptr)
{ /* No assignment necessary */ }

构造类时,初始化列表将应用于在执行构造函数体之前为对象获取的内存。