我正在制作一个简单的二叉树程序,我想初始化左右节点。我一直在尝试这样做:
class Tree{
Tree* left = new Tree();
Tree* right = new Tree();
}
这应该在堆上给我一个可访问的内存,我可以用它来访问左右节点,对吗?但是,情况似乎并非如此。我也试过通过构造函数来做这件事,但没有成功。
有没有办法在 C++ 中正确初始化类? 感谢您的宝贵时间。
最佳答案
你可以像这样创建一个类
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;
}
};
您可以使用默认构造函数
将Tree类
初始化为nullptr
,并使用参数化构造函数
进行初始化用户值,即 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
}
关于c++ - 如何在C++中初始化一个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43038503/