C++记录

1.在函数中声明中或定义中,可设置参数的默认值.(不可同时存在).

若多个参数,前面一个设置了默认值,则后面的参数也要设置默认值(缺省值).

void add(int a,int b = 10);

 

2.匿名函数(匿名表达式)  lambda

std::function<void()> func = [](){ _score++;};

[] //未定义变量.试图在Lambda内使用任何外部变量都是错误的.

[x, &y] //x 按值捕获, y 按引用捕获.

[&] //用到的任何外部变量都隐式按引用捕获

[=] //用到的任何外部变量都隐式按值捕获

[&, x] //x显式地按值捕获. 其它变量按引用捕获

[=, &z] //z按引用捕获. 其它变量按值捕获

 

3.函数后面加冒号,初始化成员变量.

void A(int a, int b) : _a(a), _b(b){

}

相当于

void A(int a, int b){

    _a = a;

    _b = b;

}

构造函数

A() : _a(0), _b(0){

}

相当于

A(){

    _a = 0;

    _b = 0;

}

 

4.类型转换

类指针或引用的上行转换static_cast 和 dynamic_cast 都可以

类指针或引用的下行转换用dynamic_cast并且判断转换后是否为空

基本数据类型之间的转换用static_cast, 但是由于数值范围的不同,需要用户保证转换的安全性

不同类型之间的指针或引用的转换用reinterpret_cast,它的本质是对指向内存的比特位的重解释

消除数据的const、volatile、__unaligned属性,用const_cast

<引用自 http://www.cnblogs.com/TenosDoIt/p/3175217.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值