开发者社区> 问答> 正文

关于函数参数左值与右值?

这里:
string s1("hi"),s2,s3;
s2=std::move(string("bye"));//正确:从一个右值移动数据
s3=std::move(s1);
书上说:在s2中传递给move的实参是string的构造函数的右值结果——string("bye")。
那可不可以直接传递"bye" 呢?这样传递的是一个左值还是右值?

展开
收起
a123456678 2016-03-09 11:42:10 2283 0
1 条回答
写回答
取消 提交回答
  • 基本概念是:左值 就是等号左的值,如果是数值,就不能赋值,出现赋值的情况就有问题;右值可以是变量或数值,都没有问题。

    lvalue=rvalue

    而扩展开来,有一个类a和返回数值的成员b那么下面表达式中,i 是一个左值,a也是一个左值,b 是一个右值,因为有点号操作符,在左边的就是左值,右边的就是右值

    int i = a.b();

    2019-07-17 18:55:43
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
函数对象 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载

相关实验场景

更多