C++lesson02

重载

编译器会根据参数类型来匹配不同的空间
记录函数的参数类型,例如:Mycout@char*@int(该命名永远不会重复)
extern C :采用C方式编译 不会出现命名粉碎机制。
在实现重载当中会有个匹配的过程,匹配过程如下
1、精准匹配:int–int
2.提升匹配:char–int float–double
3.类型转换的匹配:int–unsigned int
当匹配规则出现冲突时,即有多个匹配时,会出现二义性,此时应进行精准匹配来解决,或者是在调用函数时强转如f2((char*)num)
重载应根据业务需求确定,尽量不出现类似int*,类型个数不能太多也不能太少,一般应有这三类:int double string


默认参数

void Mycout(int num=10,bool line=true)

默认实参时候从右至左,调用时从左到右,如果出现二义性,要么使之唯一匹配,要么调用时确定精确参数

内联函数

函数之前+“inline”将不会新建栈,运行效率大大提升
(类似于int num=100,把100拿去用)
坏处是 生成的代码体积会膨胀,inline不是100%会成为内联,根据编译器的判断完成

类型转换

在c++中的类型转化符:
1.static_cast

int num=static_cast<int>(1.0003)

2.const_cast<>
把const转化为非const类型,移除对象的常量性,但不能修改内容
3.reinterpret_cast
强制转化(二进制)一般不用
4.dynamic_cast<>大型框架下使用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值