c++11特性速记
创始人
2025-05-30 20:10:25

C++11

C++11 能更好的用于系统开发和库开发,语法更加泛化和简单化,更加稳定和安全,功能强大,提高开发效率。

  • 自定义类型也可以使用初始化列表,扩大了大括号的使用范围。

  • 变量类型推导auto

  • decltype 推导表达式类型作为变量的定义类型

  • final修饰类表示不能被继承,修饰虚函数表示不能被重写

  • override检查是否重写父类的虚函数

  • 默认成员函数控制 =default 显示缺省函数和 =delete 先出默认函数

  • 右值引用,右值可以是数据表达式,如字面值常量、表达式返回值、函数返回值,给右值取别名,需要右值引用一个左值时用move。

  • 完美转发,在函数模板中完全依照模板的参数类型,将参数传递给函数模板中调用的另外一个函数,不产生额外开销。

  • 万能引用,模板中的&&不代表右值引用,而是万能引用,既能接收右值也能接收左值

  • 新的类功能,新增移动构造和移动赋值重载。之前6个默认的功能是构造、析构、拷贝构造、拷贝赋值、取地址重载、const 取地址重载。

  • lamda表达式,[捕捉列表](参数列表)->返回类型{表达式}。

  • nullptr关键字,代替NULL,可隐式转换为任何类型指针和bool,比NULL减少二义性,防止错误。

  • 基于范围的for循环for(auto n:nums){}

  • constexpr 编译期常量类型,在函数及表达式前加上constexpr,让编译器将其视为一个编译期常量。

  • 模板别名,template using mapstring= std::map

  • 追踪返回值类型,返回值类型由auto推导,->decltype() 成为追踪返回类型
    template
    auto Sum(T2& t1,T2 &t2) ->decltype(t1+t2){
    return t1+t2;
    }

  • 强类型枚举,不会将枚举常量暴露在外层作用域。
    enum class Option{none,one,all}
    Option o=Option::all

  • noexcept修饰符或操作符void except_fun()noexcept; noexcept(常量表达式)

  • static_assert关键字,提供一个编译时期的检查,如为真,什么也不做,如为假,打印特殊的错误信息,相比assert不易误用,无安全风险。

相关内容

热门资讯

松滋市周边亲子游景点推荐 在忙碌的生活中,亲子游成为了增进亲子关系、让孩子亲近自然与体验生活的绝佳方式。松滋市周边有不少适合亲...
“超级皖”美食争霸赛,将迎来终... “超级皖”美食争霸赛将在合肥迎来终极对决—— “美食江湖”何以破圈 当皖北平原的豪爽劲儿遇见淮河两岸...
春节假期前一天遇上情人节,浪漫... 2026年春节假期前的最后一个工作日撞上情人节,浪漫经济与年味经济叠加,带动文旅消费热度激增。同程旅...
来云南过大年!昆明官渡古镇发布... 云南网讯(记者 段芃)春风拂面,年味渐浓。随着2026年马年春节的脚步临近,昆明官渡古镇景区发布20...