课堂自我参考问题
Class Self-Reference Issues
我的所有代码都可以在这里找到。
我试图为一个项目创建一个复杂的树,但这只是项目(数据结构的构建)的开始。此外,我认为知道数据结构可以是你想要的任何东西都会有所帮助,我真的很想这样做。如果你认为另一个更好,那就太好了,但如果不必要的话,我不想改变我的数据结构,因为我想贯彻这个想法。
也就是说,我正在创造一棵树。
树的每个节点都包含一个内容字符串,bool表示它是否是非终端(如果它有子节点或是叶子)。
此外,每个节点都包含一个指向向量的指针(让我们称之为向量v)。
V是这样的,它包含其他向量。让我们把其中一个向量称为X.
X包含指向节点的指针。
除了X包含指向包含V的节点的指针时(如果有意义的话),代码运行良好。当X包含指向包含V的节点的指针时,我得到一个无限循环,该循环终止于seg错误。
我已经讨论了一个小时,很确定问题出在我的解构器上,它看起来像这样:
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"进行比较:
if (children[i][j] == this)
{
...
}
其中children[i][j]是指向您正在编写解构器的类的实例的指针。
相关文章:
- 在决定是通过参考还是通过价值时,尺寸真的是一个问题吗
- C++:Application.cpp中抛出了未解析的外部符号(解决方案在问题的末尾,供未来的读者参考)
- C++ 而循环问题 Codecademy 参考 [已解决]
- 我有几个关于参考变量的问题
- MSYS2静态QT未定义的参考问题
- OPENCV筛选未定义的参考问题
- 有关参考和指针的问题
- Python C-API:PYDICT_GETITEM上的分割故障,可能的参考问题
- 参考类型静态数据成员的问题可能是编译器错误
- 通过参考问题
- 命名空间外部变量的未定义参考/多重定义,C 结构问题
- 关于通用参考和左值参考的问题
- 通过参考问题
- 矢量参考问题
- VS 2010构建问题:参考问题
- 课堂自我参考问题
- C++参考问题
- 关于指针和参考文献的两个简短问题
- 这个快速排序有什么问题,我从书中参考它
- OpenCV 2.3编译问题-未定义的参考- Ubuntu 11.10