c++学习笔记 (不定期更新ing)
2021/11/19 14:09:58
本文主要是介绍c++学习笔记 (不定期更新ing),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- c++
- 第一章 绪论
- 1.1 计算机程序设计语言的发展
- 1.1.1机器语言与汇编语言与高级语言
- 1.1.2面向对象的语言
- 1.2 面向对象的方法
- 1.2.1由来:面向过程的程序设计方法
- 1.2.2面向对象的方法
- 1.2.3 基本概念——对象、类
- 1.3 面向对象(Object Oriented)的软件开发
- 1.3.1 分析 OOA
- 1.3.2 设计 OOD
- 1.3.3 编程 OOP
- 1.3.4 测试 OOT
- 1.3.5 维护 OOSM
- 1.4 信息的表示与存储
- 1.4.1 计算机数字系统、R进制与进制转换
- 1.4.2 信息的存储单位
- 1.4.3 原码,反码,补码
- 1.4.4 定点数与浮点数(阶码与尾数),以及数的表示范围
- 1.4.5 非数值信息的表示
- 1.5 程序的开发过程
- 1.5.1源程序与目标程序
- 1.5.2 程序开发流程
- 1.6 小结
c++
本笔记基于学校课件,附带一点笔者思维习惯,旨在梳理c++的基本知识和语法,欢迎大家阅读与指正。
第一章 绪论
1.1 计算机程序设计语言的发展
1.1.1机器语言与汇编语言与高级语言
0101 0110
add r1 r2 r3
printf(“hello”);
1.1.2面向对象的语言
特点
- 是高级语言。
- 将客观事物看作具有属性和行为的对象。
- 通过抽象找出同一类对象的共同属性和行为,形成类。
- 通过类的继承与多态实现代码重用。
- 优点:符合认识对象,到对象的行为属性的认知顺序
1.2 面向对象的方法
1.2.1由来:面向过程的程序设计方法
由main函数开始的一种树状结构(顺序,选择与循环)
-
程序 = 数据结构 + 算法 = 变量 + 函数
-
优点:自顶向下,逐层分解为易于控制和处理的独立子任务
-
缺点:可重用性差,数据安全性差,难以开发大型 软件和图形界面的应用软件
-
这是因为数据和处理数据的过程(函数)是分离的相互独立的实体,数据结构改变,函数被迫改变。也就是说,面对旧的问题,采用新的方法会有巨大开销。
-
图形用户界面难以用过程函数实现
-
1.2.2面向对象的方法
将数据及对数据的操作方法封装在一起,作为一个 相互依存、不可分离的整体——对象。
对同类型对象抽象出其共性,形成类。
- 通信:类通过一个简单的外部接口,与外界发生关系。 对象与对象之间通过消息进行通信
- 抽象:将一类事物的共同属性(数据结构)和行为(函数)封装起来:class = data + function
- 程序模式:main函数下只有class间的通信 ,没有割裂的函数与数据
- 优点:模块关系简单独立,数据更安全。继承与多态便于重用。
- 对象 = 数据结构 + 算法 程序 = (对象 + 对象 +……+对象)+ 消息
1.2.3 基本概念——对象、类
对象
- 一般对象 = 静态特征(数据与描述) + 动态特征(行为与功能)
- 面向对象方法中的对象 = 一组属性 + 一组行为
类
- 一般类 = 忽略非考虑特征后,一系列具有共性的对象的抽象
- 面向对象方法中的“类”:具有相同属性和服务的一组对象的集合
- 为属于该类的全部对象提供了抽象的描述,包括属性和行为两个主要部分。
- 类是对象的抽象,对象是类的实例。(钱范是类,钱是对象)
- 封装技术:屏蔽掉对象的内部细节,开放有限的接口与外界交互.
- 继承技术:特殊类的对象拥有其一般类的全部属性与服 务,称作特殊类对一般类的继承。
- 有序序列是一般类的话,数组,字符串,队列是特殊类
- 有助于软件复用!提高开发效率
- 多态性:指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或行为在一般类及其各个特殊类中具有不同的语义。
- 序列的排序可以被继承为字符排序,数的排序,字符串排序
1.3 面向对象(Object Oriented)的软件开发
面向对象的软件工程
面向对象的软件工程是面向对象方法在软件工程领域的全面应用。它包括:
- 面向对象的分析(OOA)
- 面向对象的设计(OOD)
- 面向对象的编程(OOP)
- 面向对象的测试(OOT)
- 面向对象的软件维护(OOSM)
1.3.1 分析 OOA
本阶段要求精确扼要地抽象出系统的必要任务,不必关心实现。
- 列出对象,归纳类
- 寻找交互关系
1.3.2 设计 OOD
- 首先是进行类的设计,类的设计可能包含多个层次(利用继承和派生机制)。
- 以类为基础提出程序设计的思路和方法,包括了算法的设计。
- 在此设计阶段,并不牵涉某一具体的计算机语言。
1.3.3 编程 OOP
- 本笔记采用C++语言
1.3.4 测试 OOT
- 以对象的类作为基本测试单位
1.3.5 维护 OOSM
- 使用面向对象的方法开发的软件,其程序与问题域是一致的,因此,在维护阶段运用面向对象的方法可以大大提高软件维护的效率
1.4 信息的表示与存储
信息
控制信息
- 指令
- 控制字(非打印字符,比如换行)
数据信息
- 数值信息
- 定点数
- 浮点数
- 非数值信息
- 字符数据
- 逻辑数据
1.4.1 计算机数字系统、R进制与进制转换
略
1.4.2 信息的存储单位
- bit, b 一个二进制位
- byte , B (1B = 8bits )字节,是计算机操作的单位
- 千字节 1 KB = 1024 B
- 兆字节 1 MB = 1024 KB
- 吉字节 1 GB = 1024 MB
- 机器字长:一般指参加运算的寄存器所含有的二进制数的位数,代表了机器的精度,如32位、64位等。在内存中也就相应可能有264(64位)种不同的值,地址长度也是64位。
1.4.3 原码,反码,补码
1.4.4 定点数与浮点数(阶码与尾数),以及数的表示范围
1.4.5 非数值信息的表示
外文
- ASKII码:用一个非负的byte表示一个字符(只有128个字符)
- {[0,31],{127}}表示33个控制字符(不可显示)
- \10 换行
- \128 删除
- [32,126]表示95个可显示字符
- \65 “A”
- \96 “a”
- \57 “9” //字符“9”和数字9 的机器码是不一样的,强制类型转换是不会修改机器码的
- {[0,31],{127}}表示33个控制字符(不可显示)
- EBCDIC:字节最高位也参与,最多可以表示256个字符
汉字
- 国标码(GB2312-80标准):是二字节码,用两个非负字节编码表示一个汉字(只使用了6763个汉字,当然其他的可以表示数字与符号)。
- GB2312-80 GB2312将代码表分为94个区,对应第一字节;每个区94个位,对应第二字节,**两个字节的值分别为区号值和位号值加32(20H)。**01-09区为符号、数字区,16-87区为汉字区,10-15区、88-94区是有待进一步标准化的空白区。GB2312将收录的汉字分成两级:第一级是常用汉字计 3755个,置于16-55区,按汉语拼音字母/笔形顺序排列;第二级汉字是次常用汉字计3008个,置于56-87区,按部首/笔画顺序排列。故而 GB2312最多能表示6763个汉字。
1.5 程序的开发过程
1.5.1源程序与目标程序
- 汇编语言源程序翻译成目标程序。
- 一般高级语言编译成目标程序。
- python源程序只能解释,解释一句执行一句,不会生成目标程序。
1.5.2 程序开发流程
- 编辑
- 编译
- 链接
- 运行调试
1.6 小结
- 语言是具有一套语法、词法规则的系统。计算机程序设计语言是计算机可以识别的语言,用于描述解决问题的方法,供计算机阅读和执行。
- 计算机语言可以分为:机器语言、汇编语言、高级语言和面向对象的语言。
- 面向对象的软件工程是面向对象方法在软件工程领域的全面应用。
- 计算机加工的对象是数据信息,而指挥计算机操作的是控制信息。所有的信息在计算机内部都是用二进制数表示的,具体的表示方式根据信息的类型有所不同。
这篇关于c++学习笔记 (不定期更新ing)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享