c++中对象什么时候被销毁?
5个回答
展开全部
从某种意义上来说是调用析构函数的时候
比如说作为局部变量当这个函数结束或者返回饿时候
比如说new出来的对象当这个对象被delete的时候
比如说全局变量的时候应该是程序结束运行的时候(main返回之后)
还有就是无名字的临时变量会稍瞬即逝,例如自定义类型class A
A().get();
这个无名字的变量从构造,然后调用get这个成员函数之后,马上就会被析构
特殊情况是返回值临时变量的运行期,例如函数fun的返回值是自定义类型A,
A fun(void){A b;return b;};
假设获取返回值的地方是这样的A& c = fun();那么没有名字的临时返回值会跟随c的生命周期决定,当然不能超过这个函数范围
⋯⋯一时间想不到其他特殊情况了
比如说作为局部变量当这个函数结束或者返回饿时候
比如说new出来的对象当这个对象被delete的时候
比如说全局变量的时候应该是程序结束运行的时候(main返回之后)
还有就是无名字的临时变量会稍瞬即逝,例如自定义类型class A
A().get();
这个无名字的变量从构造,然后调用get这个成员函数之后,马上就会被析构
特殊情况是返回值临时变量的运行期,例如函数fun的返回值是自定义类型A,
A fun(void){A b;return b;};
假设获取返回值的地方是这样的A& c = fun();那么没有名字的临时返回值会跟随c的生命周期决定,当然不能超过这个函数范围
⋯⋯一时间想不到其他特殊情况了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
局部动态变量是作用域结束后就销毁
new出来的变量在执行delete时被销毁
静态变量在main结束时被销毁
全局变量在main结束后被销毁
new出来的变量在执行delete时被销毁
静态变量在main结束时被销毁
全局变量在main结束后被销毁
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
析构函数运行的时候
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询