c ++访问成员的参考

时间:2017-10-06 08:30:44

标签: c++ reference member-variables

所以我得到了像这样的类标题

Node::Node()
{
    children[0] = &Node();
    value = children[0]->value;  // ->memory access violation error
}

据我了解我的代码,我创建了一个对节点对象的引用数组 现在在c ++文件中我创建了一个子节点并将其保存在我的子数组中。然后我想访问已创建的子项的值变量:

{{1}}

但我无法读懂孩子们的价值,我不知道为什么? 在运行期间,会出现内存访问冲突错误 - 0xC0000005

1 个答案:

答案 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吗?