找回密码
 立即注册
首页 资源区 代码 C++11新特性(一):语言特性

C++11新特性(一):语言特性

挠溃症 2025-6-4 19:30:56
目录

  • C++11新特性

    • 语言特性

      • 右值引用
      • 移动语义
      • 转发引用
      • 可变参数模板
      • 列表初始化
      • 静态断言
      • 类型推导
      • lambda表达式
      • decltype类型声明
      • 类型别名



C++11新特性

总结C++11特性时发现整个内容较多,建议查看前先查看目录。
语言特性

右值引用

右值的分类为将亡值和字面量。将亡值就是将要销毁的对象以及临时的变量,字面量就是常量。左值就是变量。
右值引用,通常使用&&表示。
  1. // 字面量
  2. int a = 1; // a变量,左值;b变量,右值
  3. int Func(int a, int b){
  4.     return a + b;
  5. }
  6. int res = Func(1, 2); // 此时Func(1, 2)返回的就是一个临时变量,即是右值。res变量是一个左值,\
  7. 延长了Func(1, 2)右值的生命周期。
  8. int& b = a; // 左值引用
  9. int&& c = a; // 右值引用
复制代码
移动语义

移动语义指的是将一个对象的资源所有权转发给另一个对象。常用于类的移动构造函数和移动赋值运算符。
只要类中有任何构造函数,就不会生成默认构造函数
[code]int a = 1;int res = Func(1, 2);int&& b = move(a); // move用来实现左值到右值转变 int&& c = move(a); // std::moveclass MyClass{public:    MyClass() = default; // 默认构造函数    MyClass(MyClass& obj){ // 拷贝构造函数        cout
您需要登录后才可以回帖 登录 | 立即注册