觉得自己在C++这方面真的没有掌握的东西还有太多,希望自己在这半个月不到的时间内能尽可能弥补自己的空缺,以下是我利用课件和课外查阅的一些资料做的一些笔记,肯定还有很多很多不完善的地方,但是还是希望能通过自己的努力一点点的去改正。把之前的实验又重新做一遍,希望可以让自己的知识更扎实一点。
第一章 绪论
一、课件知识点
由计算机硬件系统可以识别的二进制指令组成的语言称为机器语言。
2. 汇编语言
将机器指令映射为一些可以被人读懂的助记符,如ADD、SUB等。
3. 高级语言
屏蔽了机器的细节,提高了语言的抽象层次,程序中可以采用具有一定含义的数据命名和容易理解的执行语句。
4. 结构化程序设计的基本结构
每个模块内部都由三种基本结构组成。
模块的具体实现是使用子程序(函数)。
5.面向对象的程序设计核心概念:对象、消息;类、实例
① 客观世界中的事物→抽象为“对象”
② 把所有对象的共性划分为对象类,每个类定义一组数据和一组方法(也叫操作,或,服务)
③ 每个对象属于一个类,称为该类的一个实例。
类与对象的关系是抽象与具体。
④ 对象和对象之间通过消息通信。
6.面向对象程序设计的基本特征:抽象性、封装性、继承性、多态性
7. 二进制的优点:
① 易于物理实现
② 运算简单
③ 机器可靠性高
④ 通用性强
二进制的缺点:
.用二进制表示一个数时,位数太多,太繁琐
.难于记忆,可读性差。
8.原码,反码,补码
(a) 原码
能表示有符号数的范围为:-127~+127
0有两种表示形式:[+0]原=0000 0000 [-0]原=1000 0000
(b) 反码
能表示有符号数的范围为:-127~+127
0有两种表示形式:[+0]反=0000 0000 [-0]反=1111 1111
(c) 补码
有符号数的范围为:-128~+127
在补码表示中,0有唯一的表示形式:[+0]补=[-0]补=0000 0000
多出来的这个补码1000 0000被用来表示-128
二、自己对第一章的梳理
这一章主要是对一些概念性问题的掌握,各类语言的特点,编写程序的一些过程。
熟悉计算机存储的方式。
第二章 C++简单程序设计
一. 课件理解
1. 数据类型影响/决定:
① 数据占内存字节数
② 数据取值范围
③ 其上可进行的操作
2.常量(字面常量、符号常量)
const 说明,是语句,末尾有分号
例:const int N=10;
3,。变量的说明
<类型说明符><变量名表>;
4.sizeof运算符用来测试某类型数所占字节数
5.控制结构语句
if-else语句嵌套使用时,要注意if与else的正确配对。必要时,需要用{}括起语句块。
switch语句在使用过程中要注意break的合理使用
对于循环语句,要注意:
(1) 初始条件、循环结束条件的设置,尤其是边界部分;
(2) 在循环中使用break和continue的区别;
(3) 循环语句的嵌套使用中,要注意内外层循环变量的设置;
6. case是用于开关语句中的关键字。
开关语句,又称switch语句,由关键字switch搭配若干个case及可能存在的default语句,共同组建成的一种分支结构语句。其一般形式为
switch(表达式)
{
case 常量表达式1:语句1;
....
case 常量表达式2:语句2;
default:语句;
}
其功能为判断表达式的值,然后跳转到与表达式值相同的常量表达式n对应的case上去执行。
其中,表达式必须为整型,case后的表达式必须为常量。
default语句可以省略。
在switch语句中,如果执行到break;语句,而break语句不在任何循环体内,那么会跳出switch语句
7.枚举型
语法格式:enum 枚举类型名 { 枚举值列表 };
① 枚举类型,本质是整型。枚举类型可以隐含转换为整型,但整型转换为枚举类型,必须显式转换。
② 枚举类型不能直接输入/输出。
8.变量的类型:auto,extern,siatic
二、自己的理解(这部分内容是根据课外视频整理的,所以可能会凌乱)
1、一个符号只能说明一次,且先声明,后使用
2.pow(x,y) 表示x的y次方,pow是函数名,x,y均为双精度实数
3.一次运行,多次输入
while(<条件>)
{
<循环体(一段程序)>
}
<其他语句>
4.数学函数的使用 #include<cmath>
平方根:sqrt() 绝对值:fabs(x)
自变量均为双精度,结果也是双精度实数
5.\n 换行
\r 后面取代前面
\t 空格
\f 翻页
\b 前移一格
6.const <类型说明符><符号常量名>=数据;
const int N=100;(说明一个符号表示一个常量)
7.符号常量
在main函数之前 #define<符号名称><数据>
(define说明,预处理,行末没有分号)
#define PAI 3.14
8. 变量使用中应注意的问题
1先定义,再使用
2只能定义一次,不能重复定义
3先赋值,再参与计算
4变量可以多次赋值,而常量是不能赋值的
5变量的定义可以出现在使用前的任何地方,但建议在程序的开始定义变量
6少用或者不用字面常量
9. 算数运算的实现
pow(x,n) x的n次方
exp(x) e的x次方
log(x) x的自然对数
log10 (x) x的常用对数
sin(x) x的正弦
asin(x) 反正弦函数 -1<=x<=1
这些都属于数学函数,使用时需要在程序的开头写#include<cmath>
10.运算的数据类型
1相同类型的数据进行运算,结果还是这种数据类型
2不同类型的数据计算,默认向级别高的类型转换
3强制类型转换
(<类型>) x或<类型> (x)
将x转化为<类型>数据,x可以是表达式
11.逻辑值true, 计算机中存的是1
逻辑值false, 计算机中存的是0
12. auto被定义为自动推断变量的类型
第三章 函数
一.、课件知识点
1.函数的定义
语法格式:
类型 函数名(形式参数列表)
{
语句序列
}
2函数定义注意点
a) 定义一个函数是为了实现特定的功能。是否需要形参,形参的个数、类型,是否需要有返回值,返回值的类型,这些应当在设计函数时考虑清楚。
b) 如不需要返回值,则返回值类型标识符为void。
c) 形参个数可以是0或多个; 多个时以逗号分隔,且每个都要分别说明类型。
d) 函数名应符合C++标识符命名规则,并尽量“见名知意”。
3.函数的参数值传递时要用上“&”
4.函数的声明格式
函数返回值类型 函数名 (形式参数列表);
例:void swap(int, int);
5函数的调用
函数名(实际参数列表)
例:swap (x,y)
6.函数的引用注意事项
a) 引用变量必须在声明时进行初始化。
b) 引用变量声明中的&与取地址运算符没有关系,它只是引用变量声明固定的语法格式要求。
7.内联函数语法格式
函数名(形式参数列表)
{
语句序列
}
8.带默认参数的函数
(1) 形参的默认值必须在函数声明中指定。
(2) 有默认值的形参必须靠右放置。(即:在有默认值的形参右面,不能出现无默认值的形参)
9,函数重载简介
c++允许若干函数使用相同的函数名,但形参的个数或类型不同,这样的函数称为重载函数,这个过程称为函数重载。
当调用重载函数时,编译器会根据实参的个数、类型,做最佳匹配,来决定调用哪一个重载函数
10.所有小数默认是double类型,如果想用浮点型必须强制转换,如
float i=3.5f或者(float)3.5
二、自己学习梳理
1.函数模板的定义形式:
template<模板参数表>
类型名 函数名(参数表)
{
函数体的定义
}
所有函数模板的定义都是用关键字template开始的,该关键字之后是使用尖括号<>括起来的“模板参数表”。模板参数表由用逗号分隔开的模板参数构成,可以包括以下内容:
1class(或typename)标识符,指明可以接收一个类型参数。
2“类型说明符”标识符,指明可以接收一个由“类型说明符”所规定类型的常量作为参数。
3template<参数表>class标识符,指明可以接收一个类模板名作为参数
2.函数指针只能指向模板的实例,不能指向模板本身
3.类模板声明的语法形式:
template<模板参数表>
class 类名
{
类成员声明
}
4.在类模板以外定义其成员函数
template <模板参数表>
类型名 类名<模板参数标识符列表>::函数名(参数表)
5.引用传递和值传递区别
引用专递就是传递对象本身,值传递是传递对象的复制品
打个比方:比如你有一张相片要修改,把相片编辑工具看作函数,把被处理的相片看作参数,那么直接操作相片原件就相当于引用传递,把相片复制一份然后操作这个复制品就叫值传递。
很明显引用传递会影响当作参数的对象,而值传递不会影响当作参数的对象
原文:https://www.cnblogs.com/yyq828/p/9114480.html