c – 析构函数调用顺序的原因要求.

c – 析构函数调用顺序的原因要求.,第1张

概述正如我在某些论坛中所读到的,当创建派生类对象时,基类成员和方法在内存中分配空间但没有特定的基类对象. 现在当派生类对象超出范围时,为什么首先调用派生类析构函数.编译器的约束是什么,在基类析构函数之后无法调用派生类析构函数? 如果我错误理解了,请纠正我.谢谢 创建派生类对象时,会有一个特定的基类对象(实际上是子对象).即,当您创建派生对象时,基类ctor用于初始化派生对象中的基类subj-objec 正如我在某些论坛中所读到的,当创建派生类对象时,基类成员和方法在内存中分配空间但没有特定的基类对象.

现在当派生类对象超出范围时,为什么首先调用派生类析构函数.编译器的约束是什么,在基类析构函数之后无法调用派生类析构函数?

如果我错误理解了,请纠正我.谢谢

解决方法 创建派生类对象时,会有一个特定的基类对象(实际上是子对象).即,当您创建派生对象时,基类ctor用于初始化派生对象中的基类subj-object,并且只有在完成之后派生类ctor才能执行其 *** 作,初始化添加在其中的任何成员.派生类等

因为它是从基础构建到派生的,所以它从派生到基础都被拆除了.当派生的dtor结束执行时,仍然应该有一个完全有效的基础对象等待基础dtor来销毁它.但是,如果您首先尝试销毁基础子对象,则在运行派生的dtor时,您将不再拥有要派生的dtor的有效派生对象.

总结

以上是内存溢出为你收集整理的c – 析构函数调用顺序的原因要求.全部内容,希望文章能够帮你解决c – 析构函数调用顺序的原因要求.所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1222241.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存