临时对象

临时对象(无法作为左值,即对象类型为const类型)产生的时期:

1. 以值的方式给函数传参;

2. 类型转换;

3. 函数返回一个对象时;

 

使用:

string foo();

void bar(string& s);

 

bar(foo());      //编译错误

bar("hello world");   //编译错误

 

解释:

1. foo()和"hello world"都会产生一个临时对象,类型为const;

2. 因此,将一个const类型的对象转换为非const类型的对象时非法的。

 

posted @ 2015-04-18 10:51  hy1hy  阅读(138)  评论(0编辑  收藏  举报