目标:总结之前所学习的C++知识。
思维导图
思维升级
C语言到C++
C++是C语言的超集,分别在语法、概念、思维上做了升级。重要的是C++引入面向对象的编程思想,通过类来描述或者创建对象;而C语言没有类、对象的概念,是向过程的语言,有些厉害的C开发者可以通过结构体封装实现面向对象的思想,不过这样还是有一些缺陷,实现起来也比较麻烦。
面向过程or面向对象:对待一个问题,面向过程的思想倾向于把解决方案描述成一系列的步骤,然后用过程语言(比如C语言)来自顶向下的方式实现它;面向对象的思想会先将问题(属性,和方法)抽象描述成一个类,然后类创建特定的对象,通过对象的操作来解决问题。
语法升级
- 使用'&'可以直接引用对象的值
- 可以为函数参数设定默认值
- 如果有同名函数的话,编译器会根据具体情况去选择匹配
- new操作常常用于给对象分配堆空间,delete释放堆空间
概念升级
重要的就是类、组合和继承、多态、模板、STL这些概念了
1.类的概念
- 功能方面,对内部是实现数据和函数的绑定,分别是类的属性和类的方法
- 内部分区,private:私有数据和函数、public: 公有数据和函数、protected: 受保护的
- 类的函数,分成构造函数、普通函数、析构函数三种
- 此外,还有常成员const修饰、静态成员static修饰、友元friend,对函数或变量修饰表示不同的特性与应用
2.继承&组合
组合是覆盖原有的功能,实现更高级的功能实体;继承是在原来结构的基础上,改进出一个新的实体对象。
3.多态
多种状态,C++利用虚函数(virtual)实现对同名函数,多种不同的接口。当对象进行方法调用的时候,编译器会根据接口类型自动选择不同的方法。
4.模板
将代码块抽象成模板,有助于提高代码重用性,减少工作量。
5.STL
标准模板库,是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量、链表、队列、栈。