[C++][C++11]新特性

1. pack 函数参数:多种数据类型,多个参数 

2. nullptr  给空指针赋值

3. 一致性初始化  全部使用 大括号 {}(见到大括号就见到了 initializer list ), initializer_list<>,本质是一个 array(当array的大小为0的时候,会做成 1,最小为1)

4. auto for C++11中最简单最好用的东西。

5.explicit  几乎只用在 构造函数 (简写为 ctor)中

4,5一起的例子: for (const & a : vector_element) ,如果a的类型和vector_element中的类型不一致,并且a的类型使用了explicit,

那么将会转换失败。

6.=default  = delete

构造函数   有了之后,可以再加一个default,  Foo f(1) ,  Foo f都可以,如果不加default,就没有默认的了

拷贝构造函数   有了之后  =default  = delete 都不可以

赋值拷贝函数  有了之后  =default  = delete 都不可以

一般函数  =default 不可以    = delete 可以   一般很少这么用

析构函数  =default   = delete   二选一

引申出来的重要话题:

什么时候用编译器默认的 big three(构造,拷贝构造,赋值构造,析构)  =default ,自己不用再写呢?

类中没有 指针 的时候。

如果有指针,大概率是需要自己写big three,因为涉及到深浅拷贝

7. using 

 1)更加清楚的定义 函数指针 using FUN_ = void(*)(int, int);

 2)type alias, alias template

https://blog.csdn.net/zzyczzyc/article/details/94290574

8.noexcept

保证函数不抛出异常

void fun() noexcept(true) 无条件不抛异常

void fun() noexcept(xxx) 在xxx条件下不抛异常

9. overwrite 明确表示该函数是用来重定义的,如果写的时候,由于疏忽,写错了,入参的类型/数量,导致找不到相对应的父类函数,则报错--->感觉是帮助我们发现错误用的。

10.final 针对类/函数, 

    类:不可以继承了

    函数:不可以重写了

11.decltype

获取自己比较难推出的数据类型

比如 iterrator,lambda

12.move

本质是指针的操作,一般应用在 临时object或者确定后续不再用的object

将旧指针断掉,新的object指针指向object地址。

旧的就不可以再用了。

13.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值