文档章节

c++ 11 新特性

y
 yizhangxyz
发布于 2016/04/28 11:23
字数 298
阅读 12
收藏 0
  1. new (std::nothrow)A()当内存不足时,返回null

  2. std::function<A*(int)>代表一个可调用对象,接受1个int的参数,返回值是A*

  3. 对于c++ 对象的方法,可以通过std::bind 转换为可调用对象

    A *a = new A();

     

    std::function<A*(int)>  f1 = std::bind(&A::test,a);

  4. lambda表达式,[ capture ] ( params ) -> ret { body }  //ret表示返回类型
    std::function<void(Node*)> func =[this, tool](Node *node){};
    [this,tool]表示参数捕获,传了this之后,可以访问this下的方法和变量,也可以传入局部变量tool。
    有以下几种捕获方式

    [x] 使用x的副本
    [&x] 使用x的引用
    [=] 使用外部作用域的所有变量的副本
    [&] 使用外部作用域的所有变量的引用
    [=,&x] 使用外部作用域的所有变量的副本,但使用x的引用
    [this] 使用当前对象的this指针

  5. override显示表明是从父类重写的,final加在类声明上表明类不可被继承,加载方法上面表明方法不能被子类重写。

  6. 右值引用。避免重复拷贝,采用内存交换的方式,可以配合std::move来使用。

 

 

© 著作权归作者所有

y
粉丝 2
博文 67
码字总数 42366
作品 0
成都
私信 提问
C++17 标准正式发布:开发者可更简单地编写和维护代码

昨日,ISO C++ 委员会正式发布了 C++ 17 标准,正式名称为 ISO/IEC 14882:2017。 基于 C++ 11,C++ 17 旨在使 C++ 成为一个不那么臃肿复杂的编程语言,以简化该语言的日常使用,使开发者可以...

局长
2017/12/06
10K
43
在 Qt4 中使用 C++11

在 Qt4 中使用 C++11 原文出处:blog.qt.digia.com/cn/2011/08/22/cpp0x-in-qt 我们前面介绍了许多 C++ 11 的优点,而且介绍了如何在 Qt 5 中使用 C++ 11。但是,Qt 5 毕竟只是一个尚未发布的...

ruguonandao
2013/03/14
836
0
看完这 7 条,模拟 C++ 新功能只是一个小目标!

但是,即使你无法使用这些功能,也不一定要放弃它们的好处。至少不用放弃全部。 有一些方法可以使用代码中新功能的思路,更准确地传达你的意图。 当然,这些方法肯定不如使用新版本C++本身的...

CSDN资讯
2018/09/08
0
0
C++ 逐渐 Python 化

近几年C++有了很多变化。最新的两个版本C++11和C++14,引入了如此多的新特性,用 Bjarne Stroustrup的话说就是“感觉就像一个新语言一样。” 真的。现代c++形成了一个全新的编程风格,我不能...

fsxchen
2014/12/09
28.6K
57
2017全球 C++ 及系统软件技术大会

从1985年由Bjarne Stroustrup在贝尔实验室发明以来 ,C++作为一门系统级语言,早已超越一门编程语言的影响。由其构建的庞大的系统级软件,已经成为当今世界IT与互联网应用的关键支撑。秉承“...

活动家
2017/08/15
23
0

没有更多内容

加载失败,请刷新页面

加载更多

【在 Nervos CKB 上做开发】Nervos CKB 脚本编程简介[3]:自定义代币

原文作者:Xuejie 原文链接:https://xuejie.space/2019_09_06_introduction_to_ckb_script_programming_udt/ Nervos CKB 脚本编程简介[3]:自定义代币 CKB 的 Cell 模型和 VM 支持许多新的用...

NervosCommunity
48分钟前
4
0
通过OAuth2.0 获取授权访问SF 用户数据

通过OAuth2.0 获取授权访问SF 用户数据 OAuth2.0 相关知识 深入了解 Salesforce 中的 OAuth 2.0(SF官方) OAuth 2.0 的一个简单解释(阮一峰大神) OAuth 2.0 的四种方式(阮一峰大神) GitHub OA...

在山的那边
54分钟前
7
0
编写程序:从键盘上接受一个三位数(首先要确保是三位数),计算出各位之和输出。

#include<stdio.h> int main() { int a,sum=0; printf("请输入一个三位数:\n"); scanf("%d",&a); sum=a/100+a%100/10+a%10; printf("这三个数的和:%d",sum); return 0; }......

201905021729吴建森
今天
7
0
如何离开/退出/停用Python virtualenv

我正在使用virtualenv和virtualenvwrapper。 我可以使用workon命令在virtualenv之间切换。 me@mymachine:~$ workon env1(env1)me@mymachine:~$ workon env2(env2)me@mymachine:~$ workon e......

技术盛宴
今天
7
0
成长之路 万事坚持难

任何事情开了头,想要更好的发展下去,不忘初心,就一定要坚持下去。 以前自己坚持了一些事情,比如早睡不吃东西,由于中途断了,没有及时止损,导致又接着恶习断了几天。所以 及时的反省和调...

T型人才追梦者
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部