我正在制作一个简单的二叉树程序,我想初始化左右节点。我一直试图这样做:
class Tree{
Tree* left = new Tree();
Tree* right = new Tree();
}
这应该给我一个可访问的内存堆,我可以使用它来访问左右节点,对吗?但是,它似乎并非如此。我也试过通过构造函数来做这件事而没有运气。
有没有办法在C ++中正确初始化一个类? 谢谢你的时间。
答案 0 :(得分:1)
您可以像这样创建class
class Tree
{
public:
Tree* left;
Tree* right;
Tree() // default constructor
{
left = nullptr;
right = nullptr;
}
Tree(Tree *Tleft,Tree *Tright) // parameterised constructor
{
left = Tleft;
right = Tright;
}
~Tree() // Destructor
{
delete left;
delete right;
}
};
您可以使用default constructor
将Tree class
初始化为nullptr
,并使用parameterised constructor
初始化用户值,即使用Tree
个节点,
void main()
{
Tree *node1 = new Tree(); //using default constructor
Tree *node2 = new Tree(); //using default constructor
Tree *node3 = new Tree(node1, node2); // using parameterised constructor
}