[C++面试]C与C++(面向过程与面向对象)区别

综述

C是一门结构化语言,重点在于数据结构与算法,侧重于对于输入进行运算得到输出(面向过程)。而C++考虑的是构造一个对象模型,通过获取对象的方法和属性来得到输出(面向对象)。

面向对象与面向程序

1. 区别

  • 面向对象:将问题拆解成多个步骤,通过一个一个步骤调用解决问题

  • 面向对象:将问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个问题中的行为

2. 例子

以五子棋为例:

  • 面向过程:开始游戏-白子先走-更新棋盘-判断输赢-黑子执棋-更新棋盘-判断输赢,然后不停重复直至分出胜负

  • 面向对象:设计出玩家(包括黑白双方)、棋盘(保存棋盘状态信息)和裁判(判定输赢)等对象

3. 优缺点

类别 优点 缺点
面向过程 性能高 不如面向对象易维护、易复用和易扩展
面向对象 易维护、易复用和易扩展 具有封装、继承和多态等特性,可以设计出高内聚低耦合的系统 性能差:类调用时需要实例化,消耗一定的资源

Reference

[1] https://blog.csdn.net/tonglin12138/article/details/94555183

你可能感兴趣的:([C++面试]C与C++(面向过程与面向对象)区别)