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不易误用,无安全风险。

相关内容

热门资讯

今年人们都不爱吃羊肉面了?杭州... 在寒冷的冬季,热气腾腾的羊肉面是否依然能够温暖人心?最近在街头,听到一位路人说:“今年好像大家都不爱...
苹果泡酒选啥白酒口感最好?用对... 哈喽姐妹们!最近后台好多消息问我:苹果泡酒用什么白酒口感最好?刚好我上周刚泡了两罐红富士苹果酒,今天...
家常美食香飘四溢的秘诀,你知道... 想要吃得既健康又美味,不一定要去下馆子,也不一定要点外卖。在家亲自下厨做饭,能对食材有完全的掌控,还...
生活日常的三餐节奏,在家也能做... 日子里,一日三餐构成了生活最为踏实的那种节奏,然而美食却是其中不停跳动着的音符。它不但能满足口腹方面...
轻松掌握:最简单炸鸡腿的做法,... 炸鸡腿,这道美味,无疑是许多人的最爱。外酥里嫩,香气四溢,吃上一口就让人忍不住想再来一块。想想那金黄...