C语言赋值函数、移动赋值函数、移动构造函数详解,三者有何异同?

2026-04-12 10:171阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1707个文字,预计阅读时间需要7分钟。

C语言赋值函数、移动赋值函数、移动构造函数详解,三者有何异同?

目录+左值引用和右值引用+左值与右值+左右值的切换+左值引用:将左值绑定在引用上+常量左值引用和非常量左值引用+右值引用:将右值绑定在引用上+常量右值引用和非常量右值引用

目录
  • 左值引用和右值引用
    • 左值与右值
    • 左右值的切换
  • 左值引用:将左值绑定在引用上
    • 常量左值引用和非常量左值引用
  • 右值引用:将右值绑定在引用上
    • 常量右值引用和非常量右值引用
  • 移动构造函数
    • 赋值和移动赋值函数

      左值引用和右值引用

      左值与右值

      左值:在内存中占有确定位置的对象,即左值占有内存。换句话来说,就是有地址,有值。

      右值:不占内存(科学地讲是临时寄存器),仅有值,为临时变量。

      左右值的切换

      右值->左值:用*符号。

      int a=10; int* b=&a;// b为右值。 *b=20;// b为右值,*b为左值。

      阅读全文

      本文共计1707个文字,预计阅读时间需要7分钟。

      C语言赋值函数、移动赋值函数、移动构造函数详解,三者有何异同?

      目录+左值引用和右值引用+左值与右值+左右值的切换+左值引用:将左值绑定在引用上+常量左值引用和非常量左值引用+右值引用:将右值绑定在引用上+常量右值引用和非常量右值引用

      目录
      • 左值引用和右值引用
        • 左值与右值
        • 左右值的切换
      • 左值引用:将左值绑定在引用上
        • 常量左值引用和非常量左值引用
      • 右值引用:将右值绑定在引用上
        • 常量右值引用和非常量右值引用
      • 移动构造函数
        • 赋值和移动赋值函数

          左值引用和右值引用

          左值与右值

          左值:在内存中占有确定位置的对象,即左值占有内存。换句话来说,就是有地址,有值。

          右值:不占内存(科学地讲是临时寄存器),仅有值,为临时变量。

          左右值的切换

          右值->左值:用*符号。

          int a=10; int* b=&a;// b为右值。 *b=20;// b为右值,*b为左值。

          阅读全文