2021-03-22

本文介绍了面向过程与面向对象编程的区别,强调面向对象的扩展性、维护性和复用性优势。C语言通过`static`关键字解决命名冲突,而C++引入命名空间以避免全局作用域的命名冲突。面向对象的三大特性——封装、继承和多态,分别提高了代码的维护性、复用性和扩展性。
摘要由CSDN通过智能技术生成

第二周嵌入式周结

第一章 面向对象概述

1.2面向过程和面向对象

(C是面向过程的语言,C++是面向对象的语言)
一、面向过程

  • 面向过程是一种以过程为中心的编程思想,也可称为面向记录编程思想。传统的面向过程的编程思想总结起来就八个字——自顶向下,逐步细化。实现步骤如下:
  • 将要实现的功能描述为一个从开始到结束按部就班的连续的步骤(过程);
  • 依次逐步完成这些步骤,如果某一步的难度较大,又可以将该步骤再次细化
    为若干个子步骤,以此类推,一直到结束得到想要的结果;
  • 程序的主体是函数,一个函数就是一个封装起来的模块,可以实现一定的功能,各个子步骤往往就是通过各个函数来完成的,从而实现代码的重用和模块化编程。

所以当我们用面向过程的思想去编程或解决问题时,首先要把详细的实现过程弄清楚。若过程设计清楚,代码的功能实现将很容易。
二、面向对象

  • 面向对象是一种以事物为中心的编程思想,它汲取了结构化程序设计中好的思想,并将这些思想与一些新的、强大的理念相结合,从而为程序设计提供了一种全新的方法。
  • 所谓的面向对象,就是在编程的时候尽可能的去模拟真实的现实世界,按照现实世界中的逻辑去处理一个问题,分析问题中参与其中的有哪些实体,这些实体应该有什么属性和方法,我们如何通过调用这些实体的属性和方法去解决问题。

三、面向过程和面向对象的区别

  • 面向对象的优点有扩展性,维护性,复用性都很好,而面向过程的缺点却是扩展性,维护性,复用性都差,并且他们在应用场景上也有不同,面向对象能够解决复杂宏观的系统任务,而面向过程却只能解决具体任务。

四、面向对象的三个特点

  • 封装 提高代码维护性
  • 继承 提高代码复用性
  • 多态 提高代码扩展性
    五、衡量语言的标准
  • 扩展性:添加新的功能,不修改之前的代码;
  • 维护性:当出现问题,能够准确定位代码;
  • 复用性:功能代码复用。

第二章 C到C++的扩展

什么是命名冲突?

  • 命名冲突是由于多人协同开发过程中,会使用大量的变量和函数,而导致出现全局变量、函数的调用错误。

一、C语言是如何解决多个文件导致的命名冲突?

static关键字

  • 作用:说明静态变量
  • 修饰局部变量延长,局部变量的生命周期;
  • 修饰全局变量被修饰全局变量,只能在本文件中使用,不能在其他文件使用;
  • 修饰函数被修饰的函数只能在本文件访问,不能在其他文件访问。

二、C++引入命名空间(NameSpace)

命名空间的概念(本质:给每个变量和函数添加static)

  • 命名空间将全局作用域分为不同的部分。
  • 不同命名空间中的标识符,可以同名而不会发生冲突。
  • 命名空间可以相互嵌套。
  • 全局作用域也称为默认命名空间。

注意事项:源文件不能访问其他源文件的命名空间;如果命名空间重名,相同成员报错,不同成员合并。

命名空间的使用

  • 1、 名字::成员
  • 2、using namespace::名字
  • "::"是一个新符号,称为域解析操作符,在C++中用来指明要使用的命名空间。

两种方式的区别:前者单一;后者全部
它们都是嵌套定义。

std标准命名空间
C++的输入流: cin >>
C++的输出流: cout <<
C++的错误流:cerr

cin >> x >>y;
cout <<"the int number is x="<< x <<endl
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值