C ++ - 无法访问对象成员字段

时间:2017-11-13 08:51:47

标签: c++

我有一个名为Node的类(它是一个树节点)。它有以下字段: string strValueNode* parentvector<Node*> children

节点构造函数将字符串作为参数,从中提取第一个单词,如果字符串的其余部分不为空,则会创建一个执行相同操作的子节点。

树中的第一个节点初始化如下:

root = Node(NULL, myString);

节点构造函数:

Node(Node* parent, string str) 
{
 this->parent = parent;

 strValue = extractWord(str);

 if (str.length() > 0) {
  children.insert(children.end(), new Node(this, str);
 }
}

以上是一个简化版本,但它应该能够很好地了解它应该如何运作。

我的问题是我无法访问父亲的值。所有Node字段都设置为public。当我运行使用此特定操作的代码:parent->strValue时,程序崩溃,没有错误消息或任何类似的操作。例如:

if (parent  == nullptr)
 return "Parent: NULL";
else
 return "Parent: " + parent->strValue;

如果我改用这样的东西:

if (parent  == nullptr)
 return "Parent: NULL";
else
 return "Parent: NOT NULL";

我没有任何问题地执行。

我需要解决这个问题,但我想出了可能导致问题的想法。

0 个答案:

没有答案
相关问题