临时变量有两个特征:

1.invisiable,在程序代码中没有显式出现

2 没有名字 non - named。

出现临时变量/对象的场合
1.函数的返回值
2. 参数传递
  值传递 by - value
  采用 const-reference时,且需要转换时,例如 double d; const int &ref = d; 实际上,编译器作了一次变化 int tmp=d; const int &ref = tmp;
3. ++ --的后置运算符。它们总是生成一个临时对象tmp=原对象,对原对象进行操作。但返回tmp
4. 对象间的隐式转换,例如 string str; str="abc";

5. 用常量给变量赋值,例如 const int &i=13; 注意:int &i=13;将编译失败!

当参数为非常数引用 reference to non - const时,则不会产生临时变量。

05-11 22:12