Ale*_*Dan 6 c++ return function
可能重复:
const引用是否延长了临时的寿命?
假设我有一个功能 f:
int f(int x){return x;}
const int &a=f(1);
Run Code Online (Sandbox Code Playgroud)
我知道这f(1)只是暂时的,我会在这个声明后被销毁,但是
f(1)会被存储?x当它超出范围时也没有被破坏?f(1)和之间有什么区别x?你将表达式与值混淆了.
1)表达式返回的临时值f(1)的生命周期将延长其生命周期.此规则对于const引用而言是唯一的.
2)编译器想要的任何地方,但可能在堆栈上.
3)也许吧.这取决于编译器是复制x还是执行复制省略.由于类型int,它并不重要.
4)很多不同之处.一个是里面局部变量的名称int f(int).这是一个左值.另一个是调用int f(int)和评估rvalue 的表达式.
| 归档时间: |
|
| 查看次数: |
332 次 |
| 最近记录: |