BST() {
root = new BST();
right = NULL;
left = NULL;
};
private:
BST *right, *left;
BST *root;
main:
BST bst1;
分段故障:11构造函数是否进入了一个无限循环?我曾经尝试过静态变量调用构造函数,但并没有成功。如何处理?
在此声明中
BST bst1;
被称为类BST的默认构造函数,它在自身内部再次在该语句中调用自己
root = new BST();
所以你有无限的构造函数递归调用。
你的BST声明毫无意义。
至少像一样声明
class BST
{
private:
struct Node
{
Node *left = nullptr;
Node *right = nullptr;
// some data member for stored data
} *root = nullptr;
public:
BST() = default;
// other declarations
};
尝试将root设置为nullptr
,而不是创建新的BST对象。然后在需要时初始化它。