1、面向过程和面向对象初步认识
- C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。
举个例子:
就比如我现在要写一个外卖系统,面向过程关注的就是上架商品、点外卖、通知商家、分配骑手、派送、点评等操作,而面向对象关注的就是商家、用户、骑手。
2、类的引入
最初C++被称作“C with Classes”(包含类的C语言),是C语言的继承,进一步扩充和完善了C语言。最开始大佬们是用struct来引str入类比如在C语言中我们用结构体来定义一个学生:(C语言只能定义变量)用C语言的方式结构体只能定义变量,C++是兼容C语言的,在C++中,结构体内不仅可以定义变量,也可以定义函数。
C++对struct进行升级,把struct升级成了类,有如下标志:
结构体名称可以做类型里面可以定义函数
- class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号。类中的元素称为类的成员:类中的数据称为类的属性或者成员变量; 类中的函数称为类的方法或者成员函数。
类的定义有两种方式,具体内容等到下文的类的作用域会讲到。
4、类的访问限定符及封装
访问限定符
要知道我类里定义的东西不是都给你随便用,我若想把里面的东西给你用就定义成公有(public:)。不想给你用的就定义成私有(private:)。想要保护起来的就定义成(protect:)。
C++实现封装的方式:用类将对象的属性与方法结合在一块,让对象更加完善,通过访问权限选择性的将其接口提供给外部的用户使用。
访问限定符说明:(**都蛮重要的**)
public修饰的成员在类外可以直接被访问
protected和private修饰的成员在类外不能直接被访问(此处protected和private是类似的)
访问权限作用域从该访问限定符出现的位置开始直到下一个访问限定符出现时为止
如果后面没有访问限定符,作用域就到}类结束
class的默认访问权限为private,struct为public(因为struct要兼容C)
注意:访问限定符只在编译时有用,当数据映射到内存后,没有任何访问限定符上的区别