美文网首页
在某些情况下,实参与引用参数不匹配,C++将生成临时变量

在某些情况下,实参与引用参数不匹配,C++将生成临时变量

作者: Caesar少校 | 来源:发表于2016-11-16 22:21 被阅读9次

    如果实参与引用参数不匹配,C++将生成临时变量。当前,仅当参数为const引用时,C++才允许这样做。
    如果引用参数是const,则编译器将在下面两种情况下生成临时变量:
    • 实参的类型正确,但不是左值;
    • 实参的类型不正确,但可以转换成正确的类型;

    左值是什么呢?
    左值参数是可被引用的数据类型,例如,变量、数组元素、结构成员、引用和解除引用的指针。非左值包括字面常量(用引号括起的字符串除外,他们由其地址表示)和包含多项的表达式。
    现在,常规变量和const变量都可视为左值,因为可通过地址访问他们。但常规变量属于可修改 的左值,而const变量属于不可修改的左值。

    相关文章

      网友评论

          本文标题:在某些情况下,实参与引用参数不匹配,C++将生成临时变量

          本文链接:https://www.haomeiwen.com/subject/oparpttx.html