• C++语言程序设计(第5版 郑莉、董渊)学习笔记(自用~)


    1.前言

    临近期末 整理笔记后续复习使用
    前三章 大多关于C
    后面的 才是真正C++精华

    2.内容

    第一章 绪论

    1.1语言发展

    1.1.1 概述 机器语言——>汇编语言——>高级语言(包括C++)

    软件:各种程序+文档资料
    指令:计算机可识别的命令(所有指令的集合叫做指令系统)
    汇编语言:将机器语言映射为一些可被读懂的助记符 eg:ADD
    高级语言:屏蔽机器细节,采用有一定含义的数据命名和执行语句
    面向对象的语言:为了能更直接地描述客观世界中存在的事物

    1.1.2 面向对象

    面向对象的编程语言将客观事物看作具有属性和行为(或称服务)的对象,通过抽象找出同一类对象的共同属性和行为形成类

    结构化程序设计(面向过程的程序设计方法)

    ①自顶向下、逐步求精;
    ②程序结构按功能划分为若干个基本模块,模块形成树状结构
    ③模块之间关系尽量简单,功能上相对独立
    ④每个模块内部均是由顺序、选择、循环结构组成
    ⑤模块化的实现具体方法是 使用子程序

    面向对象的方法

    ①将数据对数据的操作方法(即 函数 ) 封装在一起,作为对象
    ②对同类型对象抽象出共性,形成类
    ③类通过外部接口与外界发生关系,对象与对象之间通过 **消息(即 函数调用 )**进行通信

    基本概念:

    1.对象:描述客观事物的实体(由一组属性和一组行为构成) [直升飞机]

    2.类:具有相同属性和服务的一组对象的集合 [飞机类]

    3.封装:将对象的属性和服务组合成独立的系统单位,并尽可能隐蔽对象的细节

    4.继承:特殊类拥有一般类的全部属性和服务 [儿子继承父亲 直升飞机类继承飞机类]

    1. 多态性:一般类中定义的行为,被特殊类继承后,可以有不同的实现 [同一个行为,根据调用对象不同,进行不同的响应]

    (先大致了解即可,后续会详细介绍~)

    面向对象软件开发流程:

    分析——>设计——>编程——>测试——>维护
    OOA——>OOD——>OOP——>OOT——>OOSM

    1.2 信息存储

    1.2.1 二进制
    1.2.2 进制转换

    1.R进制转换为十进制: 乘以对应的 权 再求和
    2.十进制转换为R进制:
    ①整数部分 除R取余,倒读
    ②小数部分 乘R取整,正读
    3.二、八、十六进制转换
    每位八进制数相当于3位二进制数
    每位十六进制数相当于4位二进制数

    1.2.3 信息存储单位

    bit
    字节 byte/B 1B=8bit 1KB=1024B 1MB=1024KB 1GB=1024MB
    word :独立的信息单位 (8位、16位、32位、64位)
    机器字长 与机器硬件指标有关,一般指参加运算的寄存器所含有的二进制位数(32位 、 64位)

    1.2.4 二进制数编码表示(原、反、补)

    原码: 由于原码对于 +0 和 -0 的表示不同,所以才去寻找其它表示方法
    反码: 原码除了符号位外,逐位取反 (相当于原码、补码转换的跳板)
    补码: 反码+1

    从原码到补码的转换:原码 除了符号位 按位取反再加1
    从补码到原码也可以 除了符号位 按位取反再加1

    注意:补码运算时,可能会 “溢出”,导致结果不是预想的

    1.2.5 程序开发概念

    源程序: 用源语言(汇编语言、高级语言…)编写的、有待翻译的程序
    目标程序: 源程序通过翻译加工后生成的程序 (机器语言、汇编语言或其它中间语言)
    翻译程序: 包括以下三种

    ①汇编程序 (将汇编语言编写的源程序 翻译为 机器语言形式的程序)
    ②编译程序 (将高级语言编写的源程序翻译为 机器指令)
    ③解释程序( 逐句 将高级语言编写的源程序翻译为 机器指令)

    完整程序过程

    编辑 ——>  编译  ——>  连接  ——>  执行
        .cpp       .obj        .exe
    
    • 1
    • 2

    第二章 C++语言简单程序设计

    2.1 概述

    2.1.1 C++语言特点

    ①尽量兼容C ②支持面向对象的方法

    初步体验

    #include <iostream>
    using namespace std;
    int main()
    {
    	cout<<"Hello~"<<endl;
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2.1.2 词法记号

    1.关键字
    ①基本数据类型: bool、char、short、int、float、double
    ②执行: default、case、continue、break、goto、static、extern、auto
    ③类: class、delete、friend、virtual、union、inline、operator、template
    (涵盖常用的部分~)

    2.操作符(运算符)
    用于各种运算的符号 + - * / 以及 and(与) or(或) not(非) xor(异或)…

    3.标识符
    程序员定义的单词
    规则: 大小写字母或下划线开头、由大小写字母下划线和数字组成、不能是C++的关键字或者操作符

    4.文字
    程序中直接使用符号表示的数据 包括 数字、字符、字符串、布尔文字

    5.分隔符
    用于分隔各个词法记号或程序正文
    () {} , : ;

    6.空白
    空格、制表符(TAB)、垂直制表符、换行符、回车符、注释

    2.2 基本数据类型和表达式

    2.2.1 基本数据类型

    在这里插入图片描述

    2.2.2 常量

    1.整型常量:正整数、负整数、零 eg: 123 0123 0x5af 123ll(ll表示类型至少为 long long)
    2.实型常量
    ①一般形式 12.5 -12.5
    ②指数形式 3.1415e+3 即 3.1415 * 103
    3.字符常量
    单引号括起来的字符 ‘a’ ‘!’
    4.字符串常量
    双引号括起来的字符 “abcde”
    5.布尔常量
    true 、 false
    6.符号常量

    const int PI=3.14159;
    //PI即为符号常量,表示3.14159
    
    • 1
    • 2

    2.2.3 变量

    1.声明形式:

    数据类型   变量名1,变量名2.....
    int i;
    
    • 1
    • 2

    2.变量的初始化
    在定义变量的同时,对其设置初始值

    //四种方式
    int i=10;
    int i={10};
    int i{10};
    int i(10);
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3.变量的存储类型

    auto 暂时性存储,其存储空间可被若干变量多次覆盖使用
    register 放在通用寄存器中,访问的速度较快
    extern  在所有函数、程序段中均可引用
    static  内存中固定地址存放 ,整个程序运行期间均有效
    
    • 1
    • 2
    • 3
    • 4

    2.2.4 运算符与表达式

    表达式是计算求值的基本单位
    ①算术运算符:

    + - * /   %  ++  --
    
    int i=10;
    cout<<i++;     //输出10  此时i为11
    
    int i=10;
    cout<<++i    //输出11  此时i为11
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    ②赋值运算符

    a=4;
    a=b=9;
    
    • 1
    • 2

    ③逗号运算

    a=3*5,a*4;     //结果为60,但a的值为15(因为并非a*=60)
    
    • 1

    ④逻辑运算
    关系运算是一种比较简单的逻辑运算

    优先级较高  <  <=   >   >=
    较低     ==   !=
    
    • 1
    • 2

    其余

    优先级逐渐降低
    !   &&    ||
    
    
    • 1
    • 2
    • 3

    3.总结

    C++由C发展而来,许多细碎的知识点,但重要的知识点较为集中,理解掌握即可

    4.更新日志

    2022.7.1 计划10天左右整理完成 前八章 主要知识点~(考试范围)

    欢迎评论留言、指正~~

  • 相关阅读:
    LeetCode第 303 场周赛
    thinkPHP基于php的衡水游泳馆管理系统--php-计算机毕业设计
    Unity3D制作塔防类游戏
    BroadcastChannel全解析
    [附源码]java毕业设计高校网上教材征订系统
    java SpringBoot登录验证token拦截器
    Linux命令--权限(chmod、chown)--使用/实例
    linux系统,确认账户密码正确
    ssm基于Java和MySql的产业信息管理系统的设计与实现毕业设计源码260839
    6种交互式内容创意帮助跨境电商卖家提高独立站商店知名度
  • 原文地址:https://blog.csdn.net/qq_60404548/article/details/125564250