学C++也有一段时间了,也写过一些小游戏,今天朋友问我为什么说C++是面向对象编程,突然就断片了。大家能谈谈你对C++面向对象编程的理解吗。
个人觉得把面象对象和C++进行分离是对于理解二者很好的方式,这样你就能很好的回答你朋友的问题了。
c++在 c的基础上增加了面向对象逻辑,1.封装 :通过把相同特征的元素封装到一个类中(比如一个自行车类封装了轮胎与车架),2.继承: 这里简单介绍下一个类可以继承另外一个类 ,被继承者属于基类(父亲类),继承者属于子类(孩子类),另外继承分为普通继承与虚拟继承。3.多态:这种情况与虚拟继承类似,通过动态添加虚拟表格的基类与子类地址达到准确调用函数的目的,首先基类要有除析构函数以外的虚函数。还有另外一种情况就是抽象类,抽象类只能做基类,抽象类有至少一个没有实现的虚函数(=0),当然不算析构函数。
封装了再多的函数,没有对象也没法调用。最简单举例说,世界上所有的财富存放在一个只能用钥匙打开的保险柜,你没有钥匙也没用。钥匙就是对象,有了对象你就能使用封装好的功能,使用成熟的功能你就不用关心内部处理过程,关心输入和返回值就好。
OOP很重要的就是ABC,面对具体问题的抽象化编程。
掌握面相对象的四个特性:封装,唯一,继承,多态
面向对象编程是一种设计程序的方法,这种方法不仅仅存在于c++这一种语言中。对象常常和类放在一起学习。
类,就相当于是人类,鱼类,国家等等一些“抽象”的群体。
对象,就相当于类的具体化,比如小明同学,鲤鱼,中国。
面向对象就是将这些抽象的过程统一提取出来,组成一个类。这是抽象
这个类有很多属性和功能:人类,可以行走,可以思考,可以回答楼主问题。等我要用的时候,再具体到哪一个人做了什么,能做什么。这实现了代码可重用性
同时,我不需要把每一个人从头到尾全部列举一遍,我跟踪的是这个人,而不是他所做的事情。每个人(对象)都是特别的,每个人的数据对别人也可以是公开或者隐藏的。这是封装和数据隐藏。
关于c++面向对象编程还有多态和继承,迫于能力无法解释,上面是对三个特性的简单解读。