C ++成员初始化列表问题

时间:2011-02-13 03:00:40

标签: c++

class TreeNode {
   // An object of type TreeNode represents one node
   // in a binary tree of strings.
   public:
      // Constructor.  Make a node containing str.
      TreeNode(string str) : item(str), left(NULL), right(NULL) {}

      string item;      // The data in this node.
      TreeNode *left;    // Pointer to left subtree.
      TreeNode *right;   // Pointer to right subtree.
};

在第6行,我可以删除这部分吗?

   : item(str), left(NULL), right(NULL)

谢谢。

2 个答案:

答案 0 :(得分:5)

不,你不能 - 那个部分在构造它时初始化TreeNode类的字段。如果删除您提到的部分,则字段将被赋予默认构造值或未定义值。

答案 1 :(得分:-2)

替换

TreeNode(string str) : item(str), left(NULL), right(NULL) {}

TreeNode(string str)
{
    item = str;
    left = NULL;
    right = NULL;
}