【2】掌握C++
1. C++的优点:封装性、继承性、多态性。
2. 封装:使函数更加紧凑,还提高了内部数据的安全性。
3. 继承:增加了软件的可扩充性和代码的可重用性
4. 多态:可以对问题更好的抽象,有利于代码维护和重用。
5. 结构体和类的右大括号后要加分号。结构体和类主要是在访问控制有差别。
6. protrcted访问权限:子类和父类间。对外不能访问。
7. 类:抽象于事物的共有的属性。对象:具有具体的属性值的事物。
8. 面向过程和面向对象的区别
[1] 面向过程:分析解决问题的步骤,然后用函数实现,调用函数。
[2] 面向对象:把构成问题的事务分成各个对象,贯穿于整个问题解决中。
[3] 如五子棋,面向过程就是开始游戏、黑子先走、绘制画面,判断输赢。面向对象就是:五子棋可分为三类对象:玩家系统(棋子),棋盘系统(负责绘制画面)、规则系统。
9. 构造函数:创建对象本身。为了保证唯一性,采用一个类名,没有返回值,可对变量进行初始化。每个类必须有一个构造函数。若类没有构造函数,编译器可提供无参数默认构造函数,倘若自己定以后又想用无参数构造函数,则需自己定义。
10. 析构函数:当一个对象生命周期结束时,回收所占有的内存空间。是构造函数的取反;~Point,也不允许有返回值和参数。调用delete时,析构函数也被调用。
11. 堆内存:优先队列的一种数据结构。第一个元素有最高的优先权。
12. 栈内存:满足现金后出的性质的数据结构。
13. 内存泄露:分配了内存空间没有收回。
14. 内存分配:存储区域有寄存器、堆栈和堆。
[1] 寄存器:最快,保存在处理器内部,需要编译器分配,数量少。
[2] 堆栈:驻留在随机访问存储器区域。通过堆栈指针获得处理支持。
[3] 堆:常规用途的内存池,heap有很大灵活性,编译器不必知道要从堆里分配多少存储空间。只用new命令编制即可,但是花费的时间比较长。
15. 重载:函数名相同,参数类型不同,参数个数不同。发生在一个类内
16. 覆盖:函数名,参数都相同,发生在两个类之间。父类和基类
17. this指针:隐含指针,指向对象本身,代表对象地址。成员函数可通过this指针识别同一对象的数据成员。
18. 继承:派生类(子类)继承基类(父类)
19. 纯虚函数:函数=0.含有纯虚函数的类叫抽象类。不能直接实例化一个对象。
virtual void breath()=0;
20. 多态性:当发现函数是虚函数,运行时,一句对象类型来确认调用哪个函数,这种能力就叫多态性。基类函数前有virtual时,子类有调用子类,无调用父类。
21. 引用:int&b=a,相当于一个变量的别名。只有在定义时是引用,别的地方都是取地址符号。常用于函数传递参数。避免发生值得拷贝。
22. #include,双引号是从当前目录查找,尖括号是直接从系统目录查找