赋值语句的左值必须是一个能够提供一块相对来说永久性的内存的地址的。那么什么样的值可以作为右值呢?答案是只要有值就行,甚至可以是临时性质的值。
你可以给一个函数的返回值赋值吗?就是这个函数的返回值作为左值,另一个数值作为右值。答案是可以的。如下图所示:
但是如果是const型引用的返回值的话,就不能通过编译了。
还有就是你不能把一个const引用型返回值赋给一个非const引用型的形参。
在string类当中定义了一个转化,它是char *和string之间的转换,这样的话,string对象就可以转换成C风格字符串。