C++学习笔记--第一章 C++概述

项目需要开始学习使用MFC编写工程软件,现在软件的编写工作已经进入调试阶段,时间比较宽松一些了。回顾一下软件编程的过程,虽然MFC很多都是一些现成的类的应用,真正对C++程序的使用要求并不高,但偶尔遇到基本的C++知识还是会感觉知识的缺乏,因此趁着有时间,决定扎实的学习一下C++的知识。

从网上搜索了各种学习经验介绍的帖子,最终决定听取牛人们的建议,以较为入门级的经典数据《C++Primer Plus 第6版》为主要书籍,同时参考深入一点的《C++Primer第5版》,进行逐章的学习。为了时时总结回顾,将微博作为学习过程的记录笔记吧。

第一章 预备知识

C++是在C语言的基础上添加了面向对象编程和泛型编程的支持,其中面向对象的编程是为应付复杂程度不断提高的现代编程任务而设计的;泛型编程是一种C++模版特性的全新编程方法。

C++融合了3种不同的编程方式:C语言代表的过程性语言、C++在C语言基础上添加的类代表的面向对象的语言、C++模版支持的泛型编程。

1、C语言编程的原理

计算机语言要处理两个概念---数据和算法。数据是程序使用和处理的信息,而算法是程序使用的方法。C语言在面世之初是过程性的语言,意味着他强调的是编程的算法方面。即过程化编程首先要确定计算机要采取的操作,然后使用编程语言来实现这些操作。但是随着程序规模的增大,过程化的语言面临着组织方面的问题。例如分支语句多了之后阅读程序会变得非常难以理解。为了解决这种难题,计算机科学家开发了一种结构化的编程方法。C语言中一方面设计了一些行为良好的结构,如for循环、while循环等,另一方面是自顶而下的设计,即将大程序分解为更小的任务,一直持续下去直到分为小型的、易于理解的模块。

2、面向对象的编程

虽然结构化的编程理念提高了程序的清晰度、可靠性,使之便于维护,但是在编写大型程序的时候仍然面临着挑战。OPP(面向对象的编程)正是为应付这种挑战而诞生的。在C++中,类是一种规范,它描述了这种新型数据格式,对象是根据这种规范构造的特定数据结构。OPP程序设计方法首先是设计类,它们准确的表示了程序要处理的东西。这种从低级组织(如类)到高级组织(如程序)的处理过程叫做自下而上的编程。

设计有用的、可靠的类是一项艰巨的任务,幸运的是,OPP语言使为程序员提供了大量的有用的类库使用。C++真正的优点之一是:可以方便的重用和修改现有的、经过仔细测试的代码。

3、C++泛型编程

泛型编程是C++支持的另一种编程模式。他与OPP的目标相同,即使重用代码和抽象通用概念的技术更简单。OPP强调编程的数据方面,而泛型编程强调的独立于特定数据类型。它们侧重点不同。OPP是一个管理大型项目的工具,而泛型编程提供了执行常见任务(如对数据排序或合并连接)的工具。

4、可移植性和标准

如果在不修改代码的情况下,重新编译程序后,程序能够良好的运行,则该程序是可移植的。

在可移植方面存在两个障碍,其中一个是硬件。硬件特定的程序是不可移植的。将依赖于硬件的部分放在函数模块中可以最大限度的降低可移植性的问题,这样可以只需重编写这些模块就可以了。

可移植性的第二个障碍是语言上的差异。如果没有准确描述语言工作方式的公开标准,要想实现C++版本与其他版本兼容将会是很难得事情。因此,才有了C++标准的制定。美国国家标准局(ANSI)在1990年设立了一个委员会专门负责制定C++标准,国际化标准组织(ISO)加入这个行列创立了联合组织ANSI/ISO,致力于制定C++标准。

经过多年努力于1998年通过了一个国际标准ISO/IEC 14882:1998,该标准被称为C++98,它不仅描述了已有的C++特性,还对该语言进行了扩展,添加了异常、运行阶段识别(RTTI)、模版和标准模版库(STL)。C++不断发展,ISO标准委员会于2001年8月批准了新标准ISO/IEC 14882:2011,该标准成为C++11。新标准增加了新特性,另外其目标是消除不一致性,让C++学习和使用起来更容易。

你可能感兴趣的:(C++学习笔记--第一章 C++概述)