学习C++的意义

声明:本专栏所有文章是学习狄泰软件学院的C++课程的笔记

一、常见观点

  1. 操作系统和驱动程序都是C写的,学好C就足够;
  2. C++在应用层用得比较多,学嵌入式没有必要学C++;
  3. 以后做驱动开发没有必要花精力去学C++;
  4. Linus大神认为C++一无是处,还学它干嘛?

二、历史

1、UINX操作系统诞生之初是直接用汇编语言写成的;

2、随着UINX的发展,汇编语言的开发效率成为一个瓶颈;

3、1971年,Ken Thompson和Dennis Ritchie对B语言进行改良,使其能够直接产生机器码,C语言诞生;

4、UNIX开始用C语言重写,同时C语言在实践过程得到发展 。

三、C语言特点

       由于C语言是在实践过程逐步完善,所以C语言没有深思熟虑的过程。C语言残留了过程低级语言的特征,例如可以通过指针直接操作内存,可以通过变量值直接跳转到某个内存执行;这样带来的好处就是通过C语言开发的最终可执行程序是非常 高效的。

四、软件方法论的发展

       1、面向过程程序设计:数据结构+算法

       面向过程程序设计主要用于解决科学计算问题,用户需求简单而固定。面向过程程序设计特点如下:

       (1)分析解决问题所需的步骤

       (2)利用函数实现各个步骤

       (3)依次调用函数解决问题

       面向过程程序设计的问题有:软件可重用性差和软件可维护性差

       2、面向对象程序设计

       面向对象程序设计由现实世界建立软件模型,将现实中的事物直接映射到程序中,可直接满足用户需求。面向对象程序设计的特点如下:

  1. 直接分析用户需求中涉及的各个实体
  2. 在代码中描述现实世界中的实体
  3. 在代码中关联各个实体协同工作解决问题

面向对象程序设计的优势如下:

  1. 构建的软件能够适应用户需求的不断变化
  2. 直接利用面向过程方法的优势而避开其劣势

五、C语言的加强

       当面向过程方法论暴露越来越多的缺陷时候,业界开始考虑在工程项目中引入面向对象的设计,而需要解决的第一个问题就是:高效的面向对象语言,并且能够兼容已经存在的代码。从而演化出去下图的两种语言:C++和Objective-C。

       从上图可看出C语言和C++并不是对立的竞争关系,C++是C语言的加强,是一个种更好的C语言;C++是以C语言为基础的,并且完成兼容C语言的特性。学习C++并不会影响原有的C语言知识,相反,学习C++可以让我们学到更多的软件设计方法。

六、学习C++的优势

各种计算机语言的演化如下图所示 :

       从上图可看出其他很多计算机语言是由C和C++演化而来的,那么学好C++将会为学习其他计算机语言打下良好基础。为什么要学习多种计算机语言呢?因为现代软件产品往往是由多种计算机语言开发的。现代软件产品架构图如下所示:

一个现代软件产品的例子架构图如下所示:

       该图是一个商场收银系统架构图,从图中可看出该软件系统又多种计算机语言组成 。从而得出现代软件产品的系统一般是由多种语言写成,目标是为拥抱用户需求的变化,同时又方便移植和方便升级部署。

七、学习C++的意义

(1)C++是一种更强大的C,通过学习C++能够掌握更多的软件设计方法;

(2)C++是Java/C#/D等现代开发语言的基础,学习C++后能够快速掌握这些语言。

(3)C++是各大知名软件企业挑选人才的标准之一。

发布了16 篇原创文章 · 获赞 1 · 访问量 2946

猜你喜欢

转载自blog.csdn.net/liqingjielihanjie/article/details/103267255
今日推荐