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

这篇具有很好参考价值的文章主要介绍了【C++系列P1】带上这篇基础小宝典,进发C++!(持续更新ing~)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

前言

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

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

目录

一.缺省函数

二.命名空间域

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

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

五.函数重载

六. 内联函数

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

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

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


一.缺省函数

运用场景:

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

图示:

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

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

【C++系列P1】带上这篇基础小宝典,进发C++!(持续更新ing~)文章来源地址https://www.toymoban.com/news/detail-470238.html

注意事项:

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

缺省函数的定义和声明:

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

二.命名空间域

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

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

 图示:

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


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

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

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

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

访问限定符的分类:

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

访问限定符说明:

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


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

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

图示:

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


五.函数重载

【函数重载】

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

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

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

  • 图中StackPush为函数重载

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


六. 内联函数


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

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

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

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

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

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

到了这里,关于【C++系列P1】带上这篇基础小宝典,进发C++!(持续更新ing~)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++失传千年经典宝典(一):基础语法认知

    C++失传千年经典系列(一):基础语法认知 C++失传千年经典系列(二):类   一: C++基础语法认知升维  忙着去耍帅,后续补充完整................

    2024年02月06日
    浏览(29)
  • Rust系列(四) trait备忘录(持续更新)

    上一篇:Rust系列(三) 类型系统与trait 基于官方文档进行简单学习记录,保证所有示例是可运行的基本单元。测试 rust 程序除了使用官方的 playground 之外,还可以通过定义 [[example]] 来运行程序。 用于 不可变对象 的解引用操作,语法类似 *v 。 官方文档: https://doc.rust-lang.org

    2024年02月14日
    浏览(32)
  • node.js系列-常见问题处理方案(持续更新)

    `` 浏览器中我们可以这样使用: node.js中实现方案 解决方案: 修改eslint配置文件 , 举个栗子:.eslintrc.js 使用方案 今天就写到这里啦~ 小伙伴们,( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ我们明天再见啦~~ 大家要天天开心哦 欢迎大家指出文章需要改正之处~ 学无止境,合作共赢 欢迎路过

    2024年02月14日
    浏览(45)
  • 排序算法中的冒泡和选择排序详解(持续更新系列)

    本系列文章为Java基础入门内容,致力于为大家详细讲解学习Java中的一些难点、常见点等,内容由浅入深。 文末有全文重点总结及配套视频资料,更多相关技术问题欢迎和我们一起交流讨论!更多学习资料可点这里获取 我们要想成为一个优秀的程序员,其实非常关键的一点就

    2024年02月07日
    浏览(42)
  • 爬虫基础一(持续更新)

    爬虫概念: 通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程 分类: 1,通用爬虫:抓取一整张页面数据 2,聚焦爬虫:抓取页面中的局部内容 3,增量式爬虫:只会抓取网站中最新更新出来的数据 反爬协议robots.txt协议 http协议: 服务器与客户端进行数据

    2024年02月04日
    浏览(37)
  • opencv 基础(持续更新中)

    https://www.couragesteak.com/ 打开一张图片: 在OpenCV中有超过150种颜色转换的方法,常用的有 BGR↔Gray 和 BGR↔HSV。 4.1 Gray 灰度处理 4.2 HSV 颜色空间 RGB适用于显示系统; HSV适用于图像处理(物体跟踪)。 属性 取值范围 H(色彩/色度) [0, 179] S(饱和度) [0, 255] V(亮度) [0, 255] 注意:不同

    2024年02月09日
    浏览(43)
  • 云计算基础(持续更新)

    第1关:云计算定义 云计算首次正式出现在商业领域是在哪一年? D. 2006 下面哪些属于云计算的特征? A. 广泛的网路接入 B. 可测量的服务 C. 弹性服务 D. 资源池化 第2关:云计算的基本原理 分布式计算是将一个任务细分为多个任务,每个任务由一台或多台计算机来完成 正确

    2024年04月11日
    浏览(37)
  • JAVA 基础算法汇总(持续更新)

    目录 前言 一、查找算法 1.顺序查找(线性查找) 2.二分查找 二、排序算法 1.冒泡排序 2.直接选择排序 3.插入排序 4.直接插入排序 · · · 三、链表的基础操作 1.链表的创建 2.移除链表元素 3.设计链表 4.ListNode temp = head 与  ListNode dumpyNode = new ListNode(0) 的区别 四、树的基础操作

    2024年02月04日
    浏览(41)
  • c++ 使用opencv来绘制各种图形(持续更新)

     OpenCV中并没有现成的函数,因此可以通过绘制两条相互垂直的直线来实现十字丝的绘制。

    2024年02月13日
    浏览(86)
  • 微信小程序-文件基础(持续更新)

    所处位置:小程序项目,根目录下 作用:存放,构成小程序的各个页面的代码文件,如下图pages文件中存放了index,logs,main子文件夹。   补充知识点: 根目录 :起源于早期将Windows文件的分级管理比喻成大树形状,驱动器一级文件夹就相当于大树的根部,故称根目录。下级

    2024年01月17日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包