C++就要这么学1--从C到C++1.1

我是K,我致力于网络安全。

可能有的小伙伴看到题目,说的是C++的学习。但是我之前的博客和开头都是网络安全,可能以为我写错了。我给给为小伙伴说明一下,在我学习网络安全之前,我其实学习的是C++语言。所以在接下来的博客中,我除了发表一些有关网络安全的博客之外,我还会教大家学习C++语言。学习编程语言,也对我们的网络安全学习时有帮助的。我们话不多说,接下来就让我们进入今天C++的学习。

C++简介

从C到C++

计算机的本质是“程序的机器”,计算机的一切操作都是由程序驱动的。程序和指令的思想是计算机系统中最基本的概念。只有懂得程序设计,才能进一步懂得计算机,真正了解计算机是怎样工作的。

在计算机诞生后的初期,人们使用机器语言或汇编语言(由于它们贴近计算机,被称为低级语言)编写程序,难学、难记、难用、难修改,是计算机只限于少数专业人员使用。

1954年出现了世界上第一种计算机高级语言,它是用于科学计算的FORTRAN语言。高级语言的出现是计算机发展过程中的一个划时代的事件,使计算机的广泛推广成为可能。随着计算机的推广使用,先后出现了多种计算机高级语言,如BASIC,ALGOL,Pasicl,COBOL,ADA,C等。其中使用最广泛、影响最大的当推BASIC语言和C语言。

BASIC语言是为初学者设计的小型高级语言。它的语法相对简单,采取交互方式功能也比较丰富,容易学习和掌握,因此受到广大初学者的欢迎。尤其在20世纪70年代微型计算机出现后,BASIC语言成为与微型计算机天然匹配的计算机语言,为计算机在大范围推广应用作出了重要的贡献。BASIC语言也因此被称为“大众语言”。

C语言是1972年由美国贝尔工作室的D.M.Ritchie研制成功的。它不是为初学者设计的,而是为计算机专业人员设计的。最初它是作为写UNIX操作系统的一种工具,在贝尔工作室内部使用。后来C语言不断改进,人们发现它功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好,既具有高级语言的优点,又具有低级语言的许多特点,特别适合于写系统软件,因此引起人们的广泛重视。在短短的几十年中,C语言从实验室走向社会,从美国走向世界,到20世纪80年代,它已风靡全世界。被安装在几乎所有的巨型机、大型机、中小型机以及微型机上。大多数系统软件和许多应用软件都是用C语言编写的。无论是在外国还是中国,C语言都成了计算机开发人员的一项基本功,C语言的设计者在当初做梦也没有想到C语言日后会如此辉煌,会如此深刻的影响了几代计算机工作者。

但是随着软件规模的增大,用C语言编写程序就显得有些吃力了。C语言是结构化和模块化的语言,它是基于过程的。在处理较小规模的程序时,程序员用C语言还比较得心应手。但是当问题比较复杂,程序的规模比较大时,结构化程序设计方法就显出它的不足。C语言的设计者必须细致的设计程序中的每一个细节,准确的考虑到程序运行时每一时刻发生的事情,例如各个变量的值是如何变化的,什么时候应该进行那些输入,在屏幕上应该输出什么等。这对程序员的要求是比较高的,如果面对的是一个复杂问题,程序员往往感到力不从心。当初提出结构化程序设计方法的目的是解决软件设计危机,但是这个目标并未完全实现。

为了解决软件设计危机,在20世纪80年代提出了面对对象的程序设计(Object Oriented Programming,简称OOP),需要设计出能支持面向对象的程序设计方法的新的语言。Smalltalk就是一种面向对象的语言。在实践中,人们发现由于C语言是如此的深入人心,使用是如此广泛,面对程序设计方法的革命,最好的方法不是另外发明一种新的语言去代替它,而是在它原有的基础上加以发展。在这种形势下,C++应运而生。C++是由AT&T Bell(贝尔)实验室的Bjarne Stroustrup博士及其同事与1980年开始在C语言的基础上进行开发并取得成功的,1985年开始在AT&T 以外流行开来。C++保留了C语言原有的所有优点,增加了面向对象的机制。由于C++对C的改进主要体现在增加了适用于面向对象程序设计的“类(class)”,因此最初它被Bjarne StrouStrup称为“带类的C”。后来为了强调它是C的增强版,用了C语言中的自加运算符“++”,改称为C++。

AT&T发布的第一个C++编译系统实际上是一个预编译器(前段编译器),它把C++代码转换成C代码,然后用C编译系统编译它,生成目标代码。第一个真正的C++编译系统是1988年诞生的。C++2.0版本于1989年出现,它有了重大的改进,包括了类的多继承。1991年的C++3.0版本增加了模板,4.0版本则增加了异常处理、命名空间、运行时类型识别(RTTI)等功能。1989年ANSI和ISO联合着手制定C++标准,并于1994年公布了非正式的草案,以征求意见,该草案是以4.0版本为基础制订的。经过几次修改后,1998年被国际标准化组织(ISO)批准为C++的国际标准。2003年ISO又发布了第二版C++标准,即目前使用的C++。

C++是由C发展而来的,与C兼容。用C语言写的程序基本上可以不加修改地用于C++。从C++的名字可以看出它是C的超集。C++既可以用于基于过程的结构化程序设计,又可用于面向对象的程序设计,是一个功能强大的混合型的程序设计语言。

C++对C的“增强”,表现在两个方面:

(1)在原来基于过程的机制基础上,对C语言的功能做了不少扩充。

(2)增加了面向对象的机制

面向对象程序设计,是针对开发较大规模的程序而提出来的,目的是提高软件开发的效率。只有编写过大型程序的人才会真正体会到C的不足和C++的优点。

不要把面向对象和基于过程对立起来,面向对象和基于过程不是互相矛盾的,而是各有用途、互为补充的。在面向对象程序设计中仍然需要用到结构化程序设计的知识,例如在类中定义以一个函数就需要用程序化设计方法来实现。任何程序设计都需要编写操作代码,具体操作的过程就是基于过程的。对于简单的问题。直接用基于过程的方法就可以轻而易举地解决。

学习C++,既要会利用C++进行基于过程的结构化程序设计,也要会利用进行面向对象的程序设计。在学习得第一部分将介绍C++基于过程的程序设计,第二部分和第三部分介绍C++基于过程的程序设计和面向对象的程序设计。

参考书籍:《C++程序设计》(第三版) 清华大学出版社

King

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值