C++调用析构函数后,对像是被销毁了不存在了吗,还是说只释放了内存?那为什么对象的成员变量还可以使用?

 我来答
蝶翼的罪
推荐于2018-05-06 · 超过21用户采纳过TA的回答
知道答主
回答量:54
采纳率:0%
帮助的人:45.1万
展开全部
个人理解:只是对象在内存中的标记变成了自由内存,也就是说庆闹兄以后分配内存就可以把这弯哗块内存就当作空誉袭间再次分配了,而对对象的成员变量调用,实际上本质是该对象对应的内存地址加上变量偏移地址的引用。类似的比如在堆中分配了一块内存,用指针指向,但是如果回收了内存,但是指针还是保存着内存的地址,所以还是可以调用,但是这块内存随时可以随时被分配作他用。
更多追问追答
追问
就是说调用析构函数后,对象还是存在的,只是说对象占用的内存区域可以被其他的东西占用?
就是说调用析构函数后,对象还是存在的,只是说对象占用的内存区域可以被其他的东西占用?
house鹏宇
2013-07-30 · TA获得超过239个赞
知道小有建树答主
回答量:285
采纳率:62%
帮助的人:56.8万
展开全部
是这样麼:
寄存器变量
一般情况下,变量(包括枝锋静态存储方式和动态存储方式)的值都是存放在内存中的,当程序中用到哪一个变量的值时,同控制器发出指令将内存中该变量的值送到运算器中。经过运算器进行运算。如果需要存数,再从运算器将数据送到内存存放。 但如果有一些变量使用频繁,为了节省存取时间,提高执行效率,C语言允许将其值存放在运算器中的寄存器中,需要时直接从寄存器中取出参加运算,不必再到内存中去存取,这种变量叫做“寄存器变量”,用关键字register于以说明,在函数内部定义。
说明 :
1、只有局部自动变量和形式猛拦晌参数可以作为寄存器变量,其他(如全局变量)不行。在调用一个函数时占用一些寄存器以存放寄存器变量的值,调用结束时释放寄存器。
2、一个计算机系统中的寄存器数目是有限的,不能定义任意多个寄存器变量,且不同的衡耐系统允许使用的寄存器变量个数不同。
3、不同系统对寄存器变量的处理是不同的。微机上用的MS C,Turbo C将寄存器变量当作自动变量处理,分配内存单元,并不真正把它们存放在寄存器中。因此,虽然程序合法,但并不提高执行速度。而PDP-11只允许将int、char和指针型变量定义为寄存器变量
4、局部静态变量不能定义为寄存器变量。即不能把变量既放在静态存储区中,又放在寄存器中。
参考:http://xyz64happy.blog.163.com/blog/static/98639677200810249133890/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjfaok
2013-07-30 · TA获得超过6806个赞
知道大有可为答主
回答量:4146
采纳率:62%
帮助的人:1606万
展开全部
对象是被销毁了不存在了,对象的”遗体“是否可用就不知道了……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式