大龙的博客

常用链接

统计

最新评论

关于C++中的临时变量

0. 局部变量 vs 临时变量
   void swap (int&a, int &b)
{
int tmp=a;
a=b;
b=tmp;      
}
上面这段程序里的tmp变量实际上是局部变量而不是临时变量。临时变量有两个特征:1.invisiable,在程序代码中没有显式出现 2 没有名字 non-named。
出现临时变量/对象的场合
1.函数的返回值
2. 参数传递
    2,1 值传递 by -value
    2.2 采用 const-reference时,且需要转换时,例如 double d; const int &ref=d;
          实际上,编译器作了一次变化 int tmp=d; const int & ref=tmp;
3. ++ --的后置运算符。它们总是生成一个临时对象tmp=原对象,对原对象进行操作。但返回tmp
4. 对象间的隐式转换,例如 string str; str=“abc”;


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

posted on 2009-09-24 23:34 大龙 阅读(316) 评论(1)  编辑 收藏 引用

评论

# re: 关于C++中的临时变量 2009-09-25 09:53 陈梓瀚(vczh)

有时候会产生一个临时变量来记录引用  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理