第二周嵌入式周结
第一章 面向对象概述
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