对象A包含对象B,A肯定持有B的引用,所以必须先解决引用的问题,不然B析构了会有无效引用。A的析构完成,A对B的引用全部失效。再析构B,就比较稳妥。
构造过程正好相反,构造函数执行时,子对象已经构造完成了,引用自然是有效的。
这是一个“完整性”的保证。
也就是说,在正常使用的情况下,任何一个类成员函数在执行期间,this指针所指向的对象一定是一个完整的,无瑕疵的对象。这里的“完整无瑕疵”,指的就是类自身以及类所包含的各级子成员,都是良好构造而且有效的。
所以,要保证这点,在构造函数执行前,编译器会隐含的把所有成员都完成初始化。而成员的析构,则会隐含的安排在析构函数执行后。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有