C++进阶之路《一》

一.引用

引用详解

& 的用法
1.逻辑与
2.位与
3.取地址符
4.引用,也就是别名
在这里插入图片描述
在这里插入图片描述

引用的概念

1.定义为引用时必须初始化
2.定义引用时不能有空引用
3.没有引用的引用

常引用

在这里插入图片描述
常引用可以引用字面常量

在这里插入图片描述

引用的好处

1.比指针方便,不用判断是否为空引用,但是使用指针必须判断是否为空指针
在这里插入图片描述

引用与指针的区别

从语法层面上看引用就是一个变量的别名,相当于给一个实体起了2个名字;从汇编层面看引用相当于一个自身为常性的指针。

为什么从语法层面喜欢使用引用呢?
因为引用安全。使用引用必须进行初始化,因此没有空引用。使用指针必须进行判空

二.内联

内联函数详解

内联函数的处理方式是在函数的调用点直接代码展开。在计算机系统下,假如频繁的调用就会造成较大的时间开销。内联函数的引入减少了函数调用过程中开栈和清栈的开销

开销:函数的现场保护和现场恢复;调用函数得给函数开辟栈帧,以及函数调用完成栈帧的清除

汇编层面看内联

在这里插入图片描述

函数可以完成内联的特点:
1.函数功能单一,只有1/2行代码
2.内联函数内部不能存在if语句或循环语句
3.Debug版本无法实现内联,必须在Release版本下才可以实现内联
inline只是给编译器一个建议,是否真正采用内联与否取决于编译器

三.函数默认值参数

函数默认值参数详解
在这里插入图片描述
在这里插入图片描述

四.函数重载

函数重载详解

模板处理函数重载

在这里插入图片描述

模板函数是类型重命名规则。 严禁将模板理解为宏替换规则

在这里插入图片描述

名字粉碎

C++将 返回类型,函数名称,参数类型作为最终调用函数名称的一部分
在这里插入图片描述

调用约定

函数的返回类型不同不可以进行重载

在这里插入图片描述

返回类型相同,参数类型相同,参数个数不同是否可以重载得看情况

如果函数参数没有缺省值(默认值)可以进行重载
一旦有默认值就不好说了,可能产生调用的二义性
在这里插入图片描述

五.extern关键字的用法

1…cpp中可以干预编译器对该函数采用什么什么方式进行编译。C方式还是C++方式

C和C++的相互调用

2.C语言中,可以告诉编译器,该函数是一个外部函数。该函数是同一个工程的其他文件中定义的函数

六.namespace

命名空间:解决全局变量名重复的问题。在不同的命名空间,可以进行区分

:: 作用域解析符
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值