C++ 入门教程(开发文档)

C++是C语言的继承,它既能够进行C语言的过程化程序设计,又能够进行以抽象数据类型为特色的基于对象的程序设计,还能够进行以继承和多态为特色的面向对象的程序设计。C++擅长面向对象程序设计的同时,还能够进行基于过程的程序设计,于是C++就适应的问题规模而论,大小由之。c++

C++不只拥有计算机高效运行的实用性特征,同时还致力于提升大规模程序的编程质量与程序设计语言的问题描述能力。编程

教程连接:C++ 入门教程(开发文档)数据结构

发展历程:编程语言

世界上第一种计算机高级语言是诞生于1954年的FORTRAN语言。以后出现了多种计算机高级语言。1970年,AT&T的Bell实验室的D.Ritchie和K.Thompson共同发明了C语言。研制C语言的初衷是用它编写UNIX系统程序,所以,它其实是UNIX的“副产品”。它充分结合了汇编语言和高级语言的优势,高效而灵活,又容易移植。
1971年,瑞士联邦技术学院N.Wirth教授发明了Pascal语言。Pascal语言语法严谨,井井有条,程序易写,具备很强的可读性,是第一个结构化的编程语言。
20世纪70年代中期,Bjarne Stroustrup在剑桥大学计算机中心工做。他使用过Simula和ALGOL,接触过C。他对Simula的类体系感觉颇深,对ALGOL的结构也颇有研究,深知运行效率的意义。既要编程简单、正确可靠,又要运行高效、可移植,是Bjarne Stroustrup的初衷。以C为背景,以Simula思想为基础,正好符合他的设想。1979年,Bjame Sgoustrup到了Bell实验室,开始从事将C改良为带类的C(C with classes)的工做。1983年该语言被正式命名为C++。自从C++被发明以来,它经历了3次主要的修订,每一次修订都为C++增长了新的特征并做了一些修改。第一次修订是在1985年,第二次修订是在1990年,而第三次修订发生在c++的标准化过程当中。在20世纪90年代早期,人们开始为C++创建一个标准,并成立了一个ANSI和ISO(Intemational Standards Organization)国际标准化组织的联合标准化委员会。该委员会在1994年1月25曰提出了第一个标准化草案。在这个草案中,委员会在保持Stroustrup最初定义的全部特征的同时,还增长了一些新的特征。
在完成C++标准化的第一个草案后不久,发生了一件事情使得C++标准被极大地扩展了:Alexander stepanov建立了标准模板库(Standard Template Library,STL)。STL不只功能强大,同时很是优雅,然而,它也是很是庞大的。在经过了第一个草案以后,委员会投票并经过了将STL包含到C++标准中的提议。STL对C++的扩展超出了C++的最初定义范围。虽然在标准中增长STL是个很重要的决定,但也所以延缓了C++标准化的进程。函数

委员会于1997年11月14日经过了该标准的最终草案,1998年,C++的ANSI/IS0标准被投入使用。一般,这个版本的C++被认为是标准C++。全部的主流C++编译器都支持这个版本的C++,包括微软的Visual C++和Borland公司的C++Builder。工具

语言特色:性能

支持数据封装和数据隐藏
在C++中,类是支持数据封装的工具,对象则是数据封装的实现。C++经过创建用户定义类支持数据封装和数据隐藏。
在面向对象的程序设计中,将数据和对该数据进行合法操做的函数封装在一块儿做为一个类的定义。对象被说明为具备一个给定类的变量。每一个给定类的对象包含这个类所规定的若干私有成员、公有成员及保护成员。无缺定义的类一旦创建,就可当作彻底封装的实体,能够做为一个总体单元使用。类的实际内部工做隐藏起来,使用无缺定义的类的用户不须要知道类是如何工做的,只要知道如何使用它便可。测试

支持继承和重用
在C++现有类的基础上能够声明新类型,这就是继承和重用的思想。经过继承和重用能够更有效地组织程序结构,明确类间关系,而且充分利用已有的类来完成更复杂、深刻的开发。新定义的类为子类,成为派生类。它能够从父类那里继承全部非私有的属性和方法,做为本身的成员。
支持多态性
采用多态性为每一个类指定表现行为。多态性造成由父类和它们的子类组成的一个树型结构。在这个树中的每一个子类能够接收一个或多个具备相同名字的消息。当一个消息被这个树中一个类的一个对象接收时,这个对象动态地决定给予子类对象的消息的某种用法。多态性的这一特性容许使用高级抽象。
继承性和多态性的组合,能够轻易地生成一系列虽然相似但独一无二的对象。因为继承性,这些对象共享许多类似的特征。因为多态性,一个对象可有独特的表现方式,而另外一个对象有另外一种表现方式。网站

工做原理编辑
C++语言的程序由于要体现高性能,因此都是编译型的。但其开发环境,为了方便测试,将调试环境作成解释型的。即开发过程当中,以解释型的逐条语句执行方式来进行调试,以编译型的脱离开发环境而启动运行的方式来生成程序最终的执行代码。[9] 
生成程序是指将源码(C++语句)转换成一个能够运行的应用程序的过程。若是程序的编写是正确的,那么一般只需按一个功能键,便可搞定这个过程。该过程实际上分红两个步骤。ui

第一步是对程序进行编译,这须要用到编译器(compiler)。编译器将C++语句转换成机器码(也称为目标码);若是这个步骤成功,下一步就是对程序进行连接,这须要用到连接器(linker)。连接器将编译得到机器码与C++库中的代码进行合并。C++库包含了执行某些常见任务的函数(“函数”是子程序的另外一种称呼)。例如,一个C++库中包含标准的平方根函数sqrt,因此没必要亲自计算平方根。C++库中还包含一些子程序,它们把数据发送到显示器,并知道如何读写硬盘上的数据文件。

语言评价:

C++是在C语言的基础上开发的一种面向对象编程语言,应用很是普遍。经常使用于系统开发,引擎开发等应用领域,支持类、封装、继承、多态等特性。C++语言灵活,运算符的数据结构丰富、具备结构化控制语句、程序执行效率高,并且同时具备高级语言与汇编语言的优势。

C++语言是对C语言的扩充,从Simula中吸收了类,从ALGOL语言中吸收了运算符的一名多用、引用和在分程序中任何位置都可说明变量,综合了Ada语言的类属和Clu语言的模块特色,造成了抽象类,从Ada Clu和ML等语言吸收了异常处理,从BCPL语言中吸收了用//表示注释C++语言保持了C语言的紧凑灵活、高效以及易于移植性强等优势,它对数据抽象的支持主要在于类概念和机制,对面向对象风范的支持主要经过虚拟机制函数因C++语言既有数据抽象和面向对象能力,运行性能高,加上C语言的普及,而从C语言到C++语言的过渡较为平滑,以及C++语言与C语言的兼容程度可以使数量巨大的C语言程序能方便地在C++语言环境中复用,使C++语言在短短几年内能流行。

更多精品课程:

阿里云大学官网(阿里云大学 - 官方网站,云生态下的创新人才工场

相关文章
相关标签/搜索