在为树编写一些代码时出错,我遇到了以下奇怪情况。我已经对这个例子做了很多剥离,所以它只是一个线性树。基本上,在main()函数中,我想将一个节点附加到我的树上,但我没有将它附加到“tree.root”,而是将它附加到“root”。然而,令我惊讶的是,它不仅编译得很好,而且我能够在节点上调用方法。只有当我尝试访问“value”成员变量时才会出错。我想我的主要问题是,为什么编译器没有捕捉到这个错误?std::shared_ptrroot=tree.AddLeaf(12,root);由于RHS上的“根”是一个完全未声明的变量。另外,出于好奇,如果编译器允许它们通过,循环定义是否有实际用例?以