如何在自身中初始化类的数组实例?

时间:2019-01-20 00:51:22

标签: c++

我希望能够在Node的构造函数中创建Node数组。但是我遇到了某种堆错误。

我用构造函数编写了一个Node类,试图用new实例化Node数组。

myTextBox.Text = myTextBox.Text & ControlChars.CrLf & newText

我希望创建一个在构造函数中创建该对象的10个实例的对象。当我写这篇文章时,我意识到这将创建一个无限循环。那10个将分别创建10个,依此类推。我应该如何解决这个问题?我应该做一个双指针吗?

1 个答案:

答案 0 :(得分:0)

如果尝试在Node构造函数中实例化新的Node对象,则将继续对构造函数进行递归调用,并耗尽内存。您正在尝试创建一个节点,该节点创建10个节点,每个节点都创建10个节点,依此类推。

如果您只想为max_size个节点分配空间,那么如果不想使用std::vector,则需要使用双指针。

class Node {
private:
    Node** nodes;
    ...
public:
    // Constructor
    Node() {
        ...
        nodes = new Node*[max_size];
    }
};

在构造函数之外,您可以通过单独的函数用新的Node对象填充该数组。