VIVO C++开发面试题及参考答案
面向过程与面向对象的区别,面向对象后的好处
面向过程编程主要关注的是程序的流程,它将一个问题分解为一系列的步骤,通过函数来实现这些步骤,数据和操作这些数据的函数是分离的。例如,在一个简单的计算学生成绩平均值的程序中,我们可能会有一些函数来输入成绩、计算总和、计算平均值等,这些函数按照一定的顺序被调用。
面向对象编程则是将数据和操作数据的方法封装在一起,形成对象。还是以学生成绩为例,我们可以创建一个学生类,这个类有学生成绩这个数据成员,同时有计算平均值等成员函数。
面向对象的好处有很多。首先是封装性,它可以隐藏对象的内部实现细节,只暴露必要的接口。这样就可以保护数据的完整性,比如学生类的成绩数据,外部不能随意修改,只能通过类提供的合法接口(如设置成绩的函数)来修改。其次是继承性,通过继承可以创建新的类,新类可以继承父类的属性和方法,这大大提高了代码的复用性。比如我们有一个学生类,再创建一个研究生类继承自学生类,研究生类就可以继承学生类的基本属性和方法,同时可以添加自己特有的属性和方法。最后是多态性,多态允许不同的对象对同一消息有不同的响应方式。例如,对于计算平均成绩这个操作,本科生和研究生可能有不同的计算方式,通过多态就可以方便地