OOP思想
C++语言是面向对象的语言,以对象为单位进行编程,相较于面向过程语言,他更符合人的思维
面向过程是具体化的,流程化的,面向对象是模型化的,面向过程是面向对象的基础,面向对象是面向过程的抽象,在类的里边,实现具体的功能还是需要流程化具体化的代码实现
总结来说,面向对象底层还是面向过程,面向过程抽象成类,然后封装,方便实用就是面向对象
优缺点:
面向过程性能比面向对象要高,因为类调用时需要实例化,开销比较大
而面向对象,易维护,易复用,易扩展
OOP语言的四大特征:抽象 封装 继承 多态
抽象
抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征。共同特征是指那些能把一类事物与他类事物区分开来的特征,这些具有区分作用的特征又称本质特征。因此抽取事物的共同特征就是抽取事物的本质特征,舍弃不同特征。所以抽象的过程也是一个裁剪的过程,不同的、非本质性的特征全部裁剪掉了。
指只向外界提供关键信息,并隐藏其后台的实现细节
封装
即信息封装,设计模块时,部分模块时私有的,对于不需要这些信息的模块来说不允许访问
继承
一个类继承另一个类,这类似于父子关系,被继承的类叫做父类,从别的类继承而来的类叫做这个类的子类
子类j继承父类的所有属性和方法,也可以为子类重定义某些属性和方法。
多态
同样的操作(方法)作用于不同的对象,可以有不同的解释,产生不同的结果,这就是多态
类
对现实生活中一类具有共同特征的食物的抽象,本质是一种数据类型,不占内存,不能被直接操作,只有被实例化成对象时,才会变的可操作,类实例化出对象,对象对应实体,对象占用内存
类的构成包括数据成员和成员函数,数据成员对应类的属性,成员函数则用于操作类的各项属性,是一个特有的操作
类通过访问限定符体现OOP的封装思想
用类实例化一个对象,对象会占用内存,内存的大小是对象成员变量大小的和,不包括对象的成员方法,一个类可以实例化多个对象,他们都有自己的成员变量,但他们共享方法