机器语言,汇编语言,高级语言的特点:
机器语言是计算机直接执行的语言,有二进制的0和1构成的一系列指令组成;汇编语言是机器语言的助记符;高级语言是接近人的自然语言习惯的编程语言,通过编译变成机器语言。
3.函数掌握函数声明与定义;掌握全局变量、静态变量、局部变量;掌握递归、重载函数。
3.1函数原型、函数的调用,按值调用,引用调用,函数与变量的作用域
函数原型:先定义函数名字,在再main函数之后定义具体函数的内容
函数的调用:可以参考408里面函数的调用
按值调用,引用调用:实参和形参
函数与变量的作用域:局部变量和全局变量
3.2全局变量、局部变量和静态局部变量
3.3递归函数、内联函数、重载函数
内联函数:(函数调用耗费栈空间,少了一次函数调用过程)
引入内联函数主要是解决一些频繁调用的小函数消耗大量空间的问题。
inline 关键字告诉编译器用函数定义中的代码替换每个函数调用实例。
但是如果代码过于复杂的话,则不一定完成内联操作
重载函数:
C++ 允许在同一范围内指定多个同名函数。 这些函数称为重载函数或重载。 利用重载函数,你可以根据参数的类型和数量为函数提供不同的语义。
4.数组掌握数组的定义与使用;掌握数组做函数参数的用法;掌握数组各种排序和查找算法。
4.1数组定义和初始化数组
必选先提前声明数组的初始化的长度
4.2数组做函数参数
传递的是数组的首地址
数组中的内容是可以被修改的
4.3二维数组
4.4字符数组与字符串,字符串函数
5.指针掌握指针和地址的概念;掌握指针的定义与初始化,指针做函数参数;掌握指针、数组和字符串的关系。
5.1指针概念、运算,new,delete运算符
5.2指针与函数
5.3字符指针
5.4指针数组,数组指针
6.引用掌握引用的语法,引用传递函数的方法;熟悉函数原型中声明引用的目的,正确使用引用。
6.1引用的概念和操作
引用就是某一变量(目标)的一个别名,也就是说,它是某个已存在变量的另一个名字。对引用的操作与对变量名直接操作完全一样。
int& temp = a;//为a这个变量取了temp这个别名
应用只能被变量初始化,不能拿被常数初始化
存在空指针,但不存在空引用
实际的转换:
6.2用引用传递函数参数和返回值
void swap(int& a,int& b)
6.3函数调用作为左值
对返回的引用进行了赋值
7.结构体和共同体了解结构体和共同体的定义与使用。
结构体使用struct来定义,使用typef来起别名
结构体在内存中使用的小端边界对齐的方式,默认的是结构体的总大小为结构体最宽基本类型成员大小的整数倍,也可以通过#pragma pack(n)的方式来修改对齐的大小
点运算符(.)用于结构体变量访问成员。
箭头运算符(->)用于结构体指针变量访问成员。
8.类与对象掌握类的声明;掌握成员函数的定义和使用。
8.1类的定义、成员变量与成员函数的定义与调用;
在每一个成员函数中都包含一个特殊的指针,这个指针的名字是固定的,称为this。它是指向本类对象的指针,它的值是当前被调用的成员函数所在的对象的起始地址。可以用this表示被调用的成员函数所在的对象,this就是this所指向的对象,即当前的对象。
8.2结构体与类的区别
概念: class和struct的语法基本相同,从声明到使用,都很相似,但是struct的约束要比class多,理论上,struct能做到的class都能做到,但class能做到的stuct却不一定做的到
类型: struct是值类型,class是引用类型,因此它们具有所有值类型和引用类型之间的差异
效率:由于堆栈的执行效率要比堆的执行效率高,但是堆栈资源却很有限,不适合处理逻辑复杂的大对象,因此struct常用来处理作为基类型对待的小对象,而class来处理某个商业逻辑
关系: struct不仅能继承也能被继承,而且可以实现接口,不过Class可以完全扩展。内部结构有区别,struct只能添加带参的构造函数,不能使用abstract和protected等修饰符,不能初始化实例字段
8.3掌握构造函数与析构函数
构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。
析构函数(destructor) 与构造函数相反,当对象结束其生命周期,如对象所在的函数已调用完毕时,系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,delete会自动调用析构函数后释放内存)
8.4掌握对象的定义、引用、对象数组、对象指针、对象的动态建立与释放
new返回的指针,主要是用于含有参数的构建方法:Object *object = new Object(12,12);
而直接创建并获得对象:Object object;
对象数组主要用的是,直接获得的方式;Object object[];
对象指针:new返回的是对象指针,也可以直接指向对象和访问对象数组
推荐文章:【计蒜客】C++ 对象数组与对象指针 (qq.com)
8.5掌握静态成员、友元
静态成员不受对象的创建而影响:
int point::count = 0;//静态数据成员定义和初始化在类外进行
友元(友元函数,友元类)
友元关系提供了不同类或对象的成员函数之间,类的成员函数与一般函数之间进行那个数据共享的机制。
1)友元函数不属于类,定义时不需要像普通成员函数那样,在函数名之前加类名::
2)友元函数不能直接访问对象的数据成员,它必须通过传进来的对象名,对象指针或对象引用来访问引用对象的数据成员
friend void show(animal&); //友元函数声明
友元类
8.6掌握类和对象的应用
8.7了解类的封装性和信息隐蔽
公用接口和私有实现的分离:通过类的将的数据和操作封装在一个抽象的集合之中,在类中的数据一般的都是私用,对数据的操作都是隐蔽事先定义好的,只需要通过简单的调用就可以实现一定的操作。这种“类的公用接口与私有实现的分离”形成了信息隐蔽。
9.运算符重载掌握运算符重载的概念、规则和使用方法;掌握常用的单目和双目运算符重载;掌握流插入和提取运算符重载。
运算符重载:就跟函数重载的意义一样,都是对同一个事物产生不同的使用方法,所以运算符重载指的是对已有的运算符重新定义新的运算规则,以适应不同的数据类型
双目运算的符的重载:双目运算符有两个操作数,通常在运算符的左右两侧,如:“+”、“-”、“=”、“<”等
单目运算符重载:单目运算符只有一个操作数,如:“!”、“-”、“++”、“–”、“&”、“*”等
左右运算符重载都有关系
流插入和提取运算符重载:
就是对<<的>>的重载
10.继承掌握继承机制建立新类的方法;了解继承如何提高软件的可复用性。
10.1继承的概念和工作方式
C++的继承与JAVA有显然的区别的就是可以多继承,而在JAVA中是单继承。虽然一次可以取得多个类的属性,但显然增加代码的复杂性的问题
10.2掌握派生类的声明与构成
10.3掌握派生类成员的成员访问属性
10.4掌握派生类的构造函数和析构函数
10.5了解基类与派生类的关系
10.6了解继承与组合的区别
11.多态性掌握多态性与虚函数的概念;了解纯虚函数和抽象类。
12.流掌握标准输入、输出流;掌握文件流的读写操作;了解流的概念。
C++标准库提供了4个全局的对象cin,cout,cerr,clog
cout,cerr,clog的效果都是一致的
cin以空格和换行为间隔分割数据,getline则以换行为间隔份分割数据
ifstream,ofstream是对文件进行操作,并转换为响应的对象进行操作
读取文件的操作
输出文件:
13.命名空间和标准模板库
了解C++命名空间的概念与引用;
定义命名空间需要使用到namespace关键字,namespace相当于一块被隔离起来的空间,只要不开里面的东西就不会被使用。'::'为域作用限定符
using 也是c++中一个关键字,该关键字的作用是展开命名空间。在命名空间中也可以直接使用函数进行定义。
了解标准模板库STL。
主要分成三个部分:
算法:swap,max,min,find,sort
容器:栈,队列,链式表,顺序表,红黑树
迭代器:用于访问迭代器的成员