如何在C ++中初始化一个类?

时间:2017-03-27 05:25:03

标签: c++ class initialization

我正在制作一个简单的二叉树程序,我想初始化左右节点。我一直试图这样做:

class Tree{
     Tree* left = new Tree();
     Tree* right = new Tree();
}

这应该给我一个可访问的内存堆,我可以使用它来访问左右节点,对吗?但是,它似乎并非如此。我也试过通过构造函数来做这件事而没有运气。

有没有办法在C ++中正确初始化一个类? 谢谢你的时间。

1 个答案:

答案 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 constructorTree 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
}