【C++系列P1】带上这篇基础小宝典,进发C++!(持续更新ing~)

举报
YY的代码生活 发表于 2023/07/03 09:39:19 2023/07/03
【摘要】 ​​​编辑​ 大家好吖,欢迎来到 YY 滴 C++系列 ,热烈欢迎!(持续更新ing~)本章主要内容面向刚刚学完C语言,准备或正在接触C++的老铁。而往往C++奇多的小特性和知识点让铁铁们头晕晕脑涨涨,因而本章收纳了许多C++中零散的知识点,相信这篇基础章会帮助铁铁们更好地入门!主要的内容如下啦~​编辑目录一.缺省函数二.命名空间域三.访问限定符(C++实现封装的方式)四. C++中的NUL...

​​编辑

  •  大家好吖,欢迎来到 YY 滴 C++系列 ,热烈欢迎!(持续更新ing~)
  • 本章主要内容面向刚刚学完C语言,准备或正在接触C++的老铁。而往往C++奇多的小特性和知识点让铁铁们头晕晕脑涨涨,因而本章收纳了许多C++中零散的知识点,相信这篇基础章会帮助铁铁们更好地入门!主要的内容如下啦~

编辑


目录

一.缺省函数

二.命名空间域

三.访问限定符(C++实现封装的方式)

四. C++中的NULL与空指针区别

五.函数重载

六. 内联函数

1.内敛函数适用“短小,使用频繁的函数”

2.内敛函数的缺陷/特点 

3.内联函数声明和定义必须要放在一起的原因  



一.缺省函数

运用场景:

  • 例:在通讯录项目时,可以省去初始化函数,通过参数的变化可以选择实现初始化/增删查改。

图示:

  • (图中的StackInit函数就是缺省函数,当我们传入栈的地址时且没有传入第二个参数时,它会默认传入另一个参数4)

(小声说:图有点小糊...保证就这张!)

编辑

注意事项:

  • 只有参数的后部参数才是可以缺省,即缺省函数参数后不可以再跟正常参数

缺省函数的定义和声明:

  • 缺省函数只能放在函数声明——编译器必须在使用函数之前知道缺省值 

二.命名空间域

引入:在实际运用代码的过程中,可能存在局部变量之间命名冲突/库与局部变量命名之间相互冲突的情况,因而我们可以在局部域全局域之外设置一个区域:命名空间域要使用时通过 a)展开命名空间域 / b)指定访问命名空间域 来实现。

程序在编译时的优先顺序:局部域->全局域->展开的命名空间域 

 图示:

编辑


三.访问限定符(C++实现封装的方式)

引入:如小标题所示,我们知道访问限定符是C++实现封装的方式,但是什么是封装呢?

封装本质上属于一种管理。例:计算机设计中的开机键,usb插口等等,让用户通过这些和计算机交互。而实际工作的是硬件元件。

  在C++中实现封装,可以通过类和操作数据的方法进行结合,通过访问权限(访问限定符)来隐藏对象内部实现细节,控制哪些方法可以在类外部直接被使用

访问限定符的分类:

编辑

访问限定符说明:

编辑


四. C++中的NULL与空指针区别

  • 在C++中,NULL表示“ 0 ”, 实际是一个宏。
  • 在C++中要表示 空指针,使用 nullptr

图示:

编辑


五.函数重载

【函数重载】

  • 是函数的一种特殊情况,C++允许在同一作用域中声名几个功能类似的同名函数显著特征:这些同名函数的形参列表(个数,类型,类型顺序)不同

注意点:对  返回值  没有要求 ,注意声明!(例:缺省函数)

图示:(注意函数声明时,是否存在缺省函数)StackInit

  • 图中StackPush为函数重载

编辑


六. 内联函数


1.内敛函数适用“短小,使用频繁的函数”

  •  当实现加法功能时,需要频繁调用加法函数,调用函数的过程中包含着频繁地开辟栈帧空间和关闭空间,会让程序运行速度变低。而解决类似问题可以使用“宏函数”,但是宏函数面临——易出错(需要括号确保直接替换后不受影响)。在这时使用内联函数不会频繁开辟空间,大大提高了程序的运行速度顶中顶有没有!!但别急,它也还有缺点呢~

2.内敛函数的缺陷/特点 

  • 内联函数的本质是通过牺牲空间换时间,运用内联函数程序的运行速度大大提升;但于此同时程序的大小也会急剧增大。因此面对一些逻辑稍微复杂的运算(循环/递归)便会大大造成冗余。
  • inline对于编译器也仅仅是一个建议最终是否成为inline,编译器自己会判断。
  • 且默认debug状态下,inline不会起作用。

3.内联函数声明和定义必须要放在一起的原因  

  • 编译器一旦把某个函数作为内联函数处理,就会在其调用的位置展开,即该函数没有地址,源文件编译后不会形成符号表,没有链接冲突。同时也不能在其他源文件中调用,故一般都是直接在源文件中定义内联函数——可以在同一个项目不同的源文件中定义函数名相同但实现不同的inline函数。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。