c++11特性速记

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<T,char*>

  • 追踪返回值类型,返回值类型由auto推导,->decltype() 成为追踪返回类型
    template <Typename T1,Typename T2>
    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不易误用,无安全风险。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值