C语言面向过程与C++面向对象

一、面向对象与面向过程的区别

面向过程是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

例如我们玩的五子棋,面向过程的设计思路就是分析问题的步骤:

1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。把上面每个步骤用不同的方法来实现。

如果是面向对象的设计思想来解决以上问题。面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为1、黑白双方,这两方的行为是一模一样的(可以下棋),2、棋盘系统,负责绘制画面(棋盘),3、规则系统,负责判定如犯规、输赢等。第一类对象(玩家对象)负责接收用户的输入(如在哪个点下棋子),并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。

如上我们可以明显地看出,面向对象是以功能来划分问题,而不是步骤。同样是绘制棋局,这样的行为在面向过程的设计中分散在了多个步骤中,很可能出现不同的绘制版本,因为通常设计人员会考虑到实际情况进行各种各样的简化。而面向对象的设计中,绘图只可能在棋盘对象中出现,从而保证了绘图的统一。

面向对象是高度实物抽象化、面向过程是自顶向下的编程!

二、面向对象的特点

在了解其特点之前,咱们先谈谈对象,对象就是现实世界存在的任何事务都可以称之为对象(万物皆对象),有着自己独特的个性

属性用来描述具体某个对象的特征。比如小珂身高176CM,体重68KG,这里身高、体重都是属性。
面向对象的思想就是把一切都看成对象,而对象一般都由属性+方法组成!

属性属于对象静态的一面,用来形容对象的一些特性,方法属于对象动态的一面,例如:小珂会跑,会说话,跑和说话这些行为就是对象的方法!所以为动态的一面, 我们把属性和方法称为这个对象的成员!

:具有同种属性的对象称为类,是个抽象的概念。比如“人”就是一类,如小珂、小甜、小钰这些人都是“人”这类对象,类就相当于一个模具,它定义了它所包含的全体对象的公共特征和功能,对象就是类的一个实例化,小珂就是人的一个实例化!我们在做程序的时候,经常要将一个变量实例化,就是这个原理!我们一般在做程序的时候一般都不用类名的,比如我们在叫小珂的时候,不会喊“人,你在干嘛呢!”而是说的是“小珂,你在干嘛呢!”

面向对象有三大特性,分别是封装性、继承性和多态性,具体后面课程都会讲到!

三、面向过程与面向对象的优缺点

面向过程

优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程开发,性能是最重要的因素。
缺点:没有面向对象易维护、易复用、易扩展

面向对象

优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护
缺点:性能比面向过程低

C语言面向过程与C++面向对象相关推荐

  1. 对比面向过程方法和面向对象方法的优劣(全)

    对比面向过程方法和面向对象方法的优劣(全) 前言: 面对这个问题,我们首先能想到两个代表性的语言C/C++,亦或是Java.区别大,优劣也区别明显.我们刚开始学习编程时都会面对"HelloW ...

  2. 强类型语言与弱类型语言/面向过程与面向对象

    强类型语言 例:c++, java , python(强语言的动态脚本语言) 特点 a.类型之间不可隐式转换 b.更加可靠严谨,不容易出错 c.开发效率低 弱类型语言 例:javascript , v ...

  3. 面向过程方法与面向对象方法的比较

    结构化方法是在软件行业得到广泛接受和使用,并一度成为早期占主导地位的软件构造与开发方法.而面向对象方法提出后,当代软件工程的发展面临着从传统的结构化范型到面向对象范型的转变,对象技术作为新范型的核心技 ...

  4. python面向过程是基于面向对象的_Python5.1-面向对象与面向过程

    面向对象: 将数据与函数绑定在一起,进行封装, 这样能够更快速的开发程序,减少了重复 代码的重写过程. 优点: 易维护.易复用.易扩展,由于面向对象有封装.继承.多态性的特性,可以设 计出低耦合的系统 ...

  5. 【c++开篇】浅谈面向对象与面向过程(举例说明)

    浅谈面向对象与面向过程 前言:刚接触C++第一时间,都会经常听到这样一话:C语言面向过程,C++面向对象.在老师模拟面试时,问道你对面向对象与面向过程的认识时,我有点懵答的不是很完整,刚好C++开篇写 ...

  6. c语言是一种面向过程的程序设计语言,C语言实现面向对象的C语言是一种面向过程的语言联合开发网络...

    lw_oopc v1.2 lw_oopc v1.2 \演示 lw_oopc v1.2 \演示\动物 lw_oopc v1.2 \演示\动物\动物.c lw_oopc v1.2 \演示\ Animal ...

  7. 用面向过程的C语言与面向对象的C++两种方式实现圆形面积与周长的求解

    面向过程的C语言 面向过程的语言完成方式是顺序的,即从main函数入口开始顺序调用并执行各个函数,最终返回. [面向过程加工的是函数]. #include <stdio.h>//C 中定义 ...

  8. c语言采取面向过程的,C语言是面向对象还是面向过程的?

    满意答案 ganchai 2018.12.20 采纳率:53%    等级:10 已帮助:423人 "C语言"面向过程和面向对象的区别是:面向过程是着重于其中程序设计的算法.语言的 ...

  9. 面向对象与面向过程区别

    面向对象:用线性的思维.与面向过程相辅相成.在软件开发过程中,宏观上,用面向对象来把握事物间复杂的关系,分析系统.微观上,仍然使用面向过程. "面向过程"是一种是事件为中心的编程思 ...

最新文章

  1. 基于自适应策略转移的深度强化学习
  2. 收藏这8个windows神级工具,你的办公效率也会提高
  3. java boolean 按位或_布尔运算符与按位运算符
  4. STM32 电机教程 22 - 基于ST MCLIB无感FOC算法变有感(HALL)FOC算法
  5. 看懂类图——UML类图基础
  6. asp.net导出excel-一行代码实现excel、xml、pdf、word、html、csv等7种格式文件导出功能而且美观-SNF快速开发平台...
  7. [转]粵語固有辭彙與漢語北方話辭彙對照
  8. iis6 配置python CGI
  9. java线程池之一:创建线程池的方法
  10. 【转】 PDO使用归纳【PHP】
  11. DenseNet论文
  12. 安装程序提示本地计算机已存在源,MSI文件安装错误码不再烦
  13. long tail(长尾理论)
  14. “名媛”不只值一个爱马仕包的钱
  15. python 提取 B 站视频中的音频
  16. 计算机视听觉机理和方法,科学网—NSFC“视听觉信息的认知计算”重大研究计划的介绍 - 刘扬的博文...
  17. python爬取斗鱼B总直播弹幕
  18. 2019最新奶茶隐藏点单攻略!据说只有单身狗才会觉得好喝的餐单?
  19. reactjs前端数据导出
  20. stm32 MPU6050 姿态解算 Mahony互补滤波算法

热门文章

  1. 一文透彻详解卡尔曼滤波原理
  2. 一文详解Camera-IMU内外参标定原理
  3. 高精度垃圾分类模型开发与硬件集成
  4. c语言插入排序算法伪代码,排序算法——插入排序(C语言实现)
  5. java delete 和deleteOnExit 的区别
  6. Opencv java 角点检测 preCornerDetect(15)
  7. 如何连接mongodb数据库,并且从中查找数据
  8. [Life Sciences.AI]专栏介绍及内容分类(持续更新......)
  9. 深入理解Python闭包概念
  10. 标准氨基酸和质子化氨基酸 三字母 单字母 对应表