临时变量和局部变量的区别是什么?
答案:2 悬赏:60 手机版
解决时间 2021-12-29 14:21
- 提问者网友:蓝莓格格巫
- 2021-12-29 06:32
临时变量和局部变量的区别是什么?
最佳答案
- 五星知识达人网友:夜风逐马
- 2021-12-29 07:34
没有名字的对象就是临时对象,它存在于完整的表达式的生存其间。也就是说,当表达式计算结束后就会被释放。一个例外是,当临时对象被引用时,它的生存期将延长到与这个引用的生存期一样长。局部对象就是可见区域在一个函数范围的对象。
局部对象有两种,静态局部对象的生存期起于所在函数第一次被调用,结束于main()函数退出之后。自动局部对象生存期起于所在函数每一次被调用,结束于函数返回。
A fun()
{
return A();//创建一个A的临时对象并返回。这个临时对象将被拷贝给调用者的临时对象,然
后释放(在进行了RVO时不创建临时对象,而是直接构造调用者的临时对象)。
}A a;
a = fun();//调用fun,产生一个临时对象;用这个临时对象为参数调用a的拷贝赋值操作符,然释放临时对象。
const A b& = fun();//调用fun,产生一个临时对象,这个对象并不会马上被释放,而是会在离开b的作用域后释放,因为它被b引用了。
局部对象有两种,静态局部对象的生存期起于所在函数第一次被调用,结束于main()函数退出之后。自动局部对象生存期起于所在函数每一次被调用,结束于函数返回。
A fun()
{
return A();//创建一个A的临时对象并返回。这个临时对象将被拷贝给调用者的临时对象,然
后释放(在进行了RVO时不创建临时对象,而是直接构造调用者的临时对象)。
}A a;
a = fun();//调用fun,产生一个临时对象;用这个临时对象为参数调用a的拷贝赋值操作符,然释放临时对象。
const A b& = fun();//调用fun,产生一个临时对象,这个对象并不会马上被释放,而是会在离开b的作用域后释放,因为它被b引用了。
全部回答
- 1楼网友:往事隔山水
- 2021-12-29 08:16
我明天再问问老师,叫他解释下这个问题
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯