Code Bye

关于c++的类的循环定义

一个类A,有一个类B的成员,类B里有一个方法 init()调用类A的全局实例的方法foo1,而类A的这个方法foo1又被定义为调用b的方法init()。
在主函数里定义一个B类对象,然后调用B.init().造成循环调用会结束进程。
本人想问的是这种写法竟然会没有限制。那么这种方式有应用的地方吗,这种用法好不好?原因是本人看别人代码的时候看到了这样的用法。只不过那个代码已经通过一些标志限制了调用A的foo1()。
解决方案

15

递归调用,很基础的程序设计技术。
但是需要由程序员自行保证递归的正确性,以及递归可以正常结束。

15

确实是楼上说的一个递归调用,假如没有结束条件,则会造成堆栈溢出的错误

20

这属于递归,和类没关系,相似于你写两个函数A、B,然后相互调用,正确性需本人保证,通常需要为递归函数的一个出口,同时递归次数不应太多,否则可能导致栈溢出

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于c++的类的循环定义