所以我得到了像这样的类标题
Node::Node()
{
children[0] = &Node();
value = children[0]->value; // ->memory access violation error
}
据我了解我的代码,我创建了一个对节点对象的引用数组 现在在c ++文件中我创建了一个子节点并将其保存在我的子数组中。然后我想访问已创建的子项的值变量:
{{1}}
但我无法读懂孩子们的价值,我不知道为什么? 在运行期间,会出现内存访问冲突错误 - 0xC0000005 。
答案 0 :(得分:1)
正如评论中所提到的,您正在创建一个指针数组,而不是一个引用列表。因此,使其成功的一种方法如下:
#include <iostream>
class Node
{
private:
int private_var;
public:
void output() { std::cout << private_var << "\n"; }
Node *children[6];
Node(int a) : private_var(a){};
};
int main()
{
Node node(1);
node.output();
node.children[0] = new Node(2);
node.children[0]->output();
return 0;
}
但很难准确猜出你的目标是什么。你能详细说明你的OP吗?