gpt4 book ai didi

c++ - 类自引用问题

转载 作者:行者123 更新时间:2023-11-30 02:05:25 25 4
gpt4 key购买 nike

我所有的代码都可以找到here .

我正在尝试为项目创建一个复杂的树,但这只是项目的开始(数据结构的构建)。另外,我认为了解数据结构可以是您想要的任何东西会有所帮助,而且我真的很想这样做。如果您认为另一个更好,那很好,但如果没有必要,我不想更改我的数据结构,因为我想贯彻这个想法。

也就是说,我正在创建一棵树。

树的每个节点包含一串内容,bool of if it is a non-terminal (if it has children or if it is a leaf).

此外,每个节点都包含一个指向 vector 的指针(我们称该 vector 为 v)。

V 是这样的,它包含其他 vector 。我们将其中一个 vector 称为 X。

X 包含指向节点的指针。

除了 X 包含指向包含 V 的节点的指针(如果这有意义的话)之外,代码工作正常。当 X 包含指向包含 V 的节点的指针时,我得到一个以段错误终止的无限循环。

我已经讨论了一个小时,我很确定问题出在我的解构器中,它看起来像这样:

Node :: ~Node () {
for (int i = 0; i < (*children).size(); i++) {
for (int j = 0; j < (*children)[i].size(); j++) {
if ((*children)[i][j] != selfP) {
delete (*children)[i][j];
}
}
}
}

我想做的是这样的:

for (int i = 0; i < (*children).size(); i++) {
for (int j = 0; j < (*children)[i].size(); j++) {
if ((*children)[i][j] != CURRENT_NODE_ADDRESS) {
delete (*children)[i][j];
}
}
}

但我不太明白如何引用我当前正在定义的类的地址。有什么想法吗?

最佳答案

你试过this了吗?指针?

关于c++ - 类自引用问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9571605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com