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

Jos*_*son 0 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.
};
Run Code Online (Sandbox Code Playgroud)

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

   : item(str), left(NULL), right(NULL)
Run Code Online (Sandbox Code Playgroud)

谢谢.

Jer*_*ock 5

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

  • @Andy:未定义的行为包括"所有*似乎*工作正常". (2认同)