c++面向对象及类(B站av76448370视频笔记)
C语言与C++主要的区别是C++可以面向对象编程而C不行。
面向过程(Procedure Oriented):是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。主要以函数为单位,而把代码组一个接一个的函数最终组成了我们的程序。
面向对象(Object Oriented):是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 它仍有很多函数,但它不再函数为中心,而是以一个又一个类和对象为中心。最后组成为一个程序。
市面上有很多语言,比如说js,php,asp,jsp,c,c++,java,c#,go语言等
用来描述一些事情,或者来计算等功能。我们可以根据语言内部的一些特点划分为面向对象的语言和面向过程的语言。少部分如C语言是面向过程的语言,而大部分语言都是面向对象的语言。为什么面向对象这么火?其开发速度快,封装性好,开发效率高,模块化更好。
面向对象及类
什么是对象(object)?
对象=数据(数据类型)+行为(函数)
生活中的例子:冰箱,洗衣机抽象成类。
C语言伪代码描述
用C语言书写程序,洗衣机的数据和功能是分开的,没有联系。如果洗衣服功能函数参数输入错误,容易造成如41行,出现冰箱洗衣服错误但强行编译成功的情况。
C++伪代码描述
用C++书写程序,洗衣机的洗衣服函数和数据是封装在一起的。只有洗衣机才有洗衣服的功能,如57行,冰箱去洗衣服,编译一定错误。
所以,对象=数据(数据类型)+行为(函数),而海尔洗衣机,海尔冰箱,这些具体的东西就是对象。
什么是类(class)?
类是定义同一类所有对象的变量和方法的蓝图或原型。
类就是海尔洗衣机,海尔冰箱前面的洗衣机,冰箱。是同类具体对象的抽象。
类不是它描述的对象 - 自行车的蓝图不是自行车。