第1章 初识C++——“Hello World!”

视频讲解:52分钟

C++是当今流行的编程语言,它是在C语言基础上发展起来的,随着面向对象编程思想的发展,C++也融入了新的编程理念,这些理念有利于程序的开发。C++从语言角度说也是一种规范,随着C++ 11 标准的发布,部分编译器开始了支持新特性的先例。
通过学习本章,读者可以达到以下学习目的:
了解C++的发展历程
了解为C++的发展做出杰出贡献的人物
掌握主要的C++编译器及开发环境
掌握C++项目文件及编译工程

1.1 C++的历史背景

学习一门语言,首先要对这门语言有一定的了解,要知道这门语言能做什么,以及怎样才能学好。本节将对C++语言的历史背景进行简单介绍,使读者对C++语言有一个简单而直接的印象。

1.1.1 20世纪最伟大的发明——计算机

计算机的出现给人们的生活带来了巨大的变化。起初,人们致力于研发进行四则运算的机器,它是通过机械齿轮运作的加法器;接着是精度只有12位的乘法计算器。直到1847年, Charles Babbages开发出能计算31位精度的机械式差分机,这台差分机被普遍认为是世界上第一台机械式计算机。随着电子物理的发展,真空二极管、真空三极管相继问世,到1939年第一部用真空管计算的机器被研制出来,该机器能进行16 位加法;随后,氖气灯(霓虹灯)存储器、复杂数字计算机(断电器计数机)、可编写程序的计数机被相继研制出来。1946年,第一台电子管计算机ENIAC 在美国被研制出来。这台计算机占地170 平方米,重30 吨,有1.8 万个电子管,用十进制计算,每秒运算5 000次。从此,计算机进入了电子计算机时代,经历了真空管计算机、晶体管计算机、集成电路计算机、大规模集成电路计算机四个阶段,每一个阶段都是随着电子物理的发展而发展的,晶体管的出现取代了电子管,它将电子元件集合到一片小小的硅片上,形成集成电路(IC), 在一个芯片上容纳几百个甚至几千个电子元件,形成了大规模集成电路(LSI)。直到现在,已经出现了使用32纳米制作的电子芯片。
现在,计算机已经应用到各个领域,如科学计算、信号检测、数据管理、辅助设计等领域。

1.1.2 C++的发展历程

早期的计算机程序语言就是计算机控制指令,每条指令是一组二进制数,不同的计算都有不同的计算机指令集。使用二进制指令集开发程序是件麻烦的事,人们需要记住大量的二进制数。为了便于记忆, 人们将二进制数用字母组合代替, 以字符串关键字代替二进制机器码, 这种编程语言称为汇编语言。汇编语言被称为低级语言, 虽然汇编语言比机器码容易记忆, 但仍然具有可读性差的缺点, 大量的跳转指令和地址值很难让程序员在短时间内理解程序的意思。于是, 高级语言应运而生。
第一个高级语言是美国尤尼法克公司在1952年研发成功的Short Code, 但被广泛使用的高级语言是FORTRAN, 它是由美国科学家巴克斯设计并在IBM公司的计算机上实现的, 但FORTRAN 语言和Algol 60主要应用于科学和工程计算, 随后出现了Pascal和C语言。C语言是在其他语言的基础上发展起来的。首先是Richard Martin开发了一种高级语言BCPL, 随后, Ken Thompson使用BCPL语言对其进行了简化, 形成了一门新的语言——B语言。但B语言没有类型的概念。之后Dennis Ritchie对B语言进行了研究和改进, 在B语言的基础上添加了结构和类型, 并将这个改进后的语言命名为C语言, 寓意很简单, 因为字母C是字母B的下一个字母, 表示语言的发展。
本书所讲述的C++语言就是从C语言发展而来的, Stroustrup经过钻研, 在C语言中加入了类的概念, C++最初的名字是C with Class, 1983年12月, 由Rick Mascitti建议改名为CPlusPlus, 即C++。
最开始提出类概念的语言是Simula, 它具有很高的灵活性, 但无法胜任比较大型的程序。C++从Simula继承了类的概念, 从Algol 68继承了运算符重载、引用以及在任何地方声明变量的能力, 从BCPL获得了“//” 注释, 从Ada得到了模板、名字空间, 从Ada、Clu和ML得到了异常。

1.1.3 C++发展史中的杰出人物

Dennis M.Ritchie 被称为C语言之父, UNIX 之父, 生于1941年9月9日, 哈佛大学数学博士, 曾任朗讯科技公司贝尔实验室( 原AT&T 实验室) 下属的计算机科学研究中心系统软件研究部的主任一职。他开发了C语言, 并著有The C Programming Language (《C程序设计语言》)一书, 还和Ken Thompson一起开发了UNIX操作系统。他因杰出的成就得到了众多计算机组织的认可和表彰, 1983年获得美国计算机协会颁发的图灵奖( 又称计算机界的诺贝尔奖), 还获得过C&C Dennis Ritchie 基金奖、电气和电子工程师协会优秀奖章、美国国家技术奖章等多项大奖。
Bjarne Stroustrup, 1950年出生于丹麦, 毕业于丹麦阿鲁斯大学和英国剑桥大学, AT&T 大规模程序设计研究部门负责人, AT&T 贝尔实验室和ACM 成员。1979 年, Stroustrup 开始研发一种语言, 当时被称为“C with Class”, 后来演化为C++。1998年, ANSI/ISO C++标准建立, 同年, Stroustrup推出其经典著作The C++ Programming Language Bjarne Stroustrup 的第三版。
Scott Meyers是世界顶级的C++软件开发技术权威人物之一, 他拥有Brown University的计算机科学博士学位, 其著作Effective C++和More Effective C++ 深受编程人员的喜爱。Scott Meyers曾经是C++ Report的专栏作家, 为C/C++ Users Journal和Dr. Dobb’s Journal 撰稿, 为全球范围内的客户提供咨询活动。他还是Advisory Boards for NumeriX LLC 公司和InfoCruiser公Scott Meyers 司的成员。
Andrei Alexandrescu 被认为是新一代C++天才的代表人物,2001年撰写了经典名著Modern C++ Design,其中对Template 技术进行了精湛运用, 第一次将模板作为参数在模板编程中使用,该书震撼了整个C++社群, 开辟了C++编程领域的Modern C++ 新时代。此外,他还与Herb Sutter 合著了C++ Coding Standards 。他在对象拷贝(objectcopying)、对齐约束(alignment constraint )、多线程编程、异常安全和搜索等领域做出了巨大Andrei Alexandrescu 贡献。
Herb Sutter是C++ Standard Committee的主席,作为ISO/ANSI C++标准委员会的委员,Herb Sutter 是C++ 程序设计领域屈指可数的大师之一。他的Exceptional系列三本书(Exceptional C++、More Exceptional C++ 和Exceptional C++ Style)成为C++程序员的必读书。他是深受程序员喜爱的技术讲师和作家,是C/C++ Users Journal的撰稿编辑和专栏作者,曾发表了上百篇软件开发方面的技术文章和论文。他还担任Microsoft Visual Herb Sutter C++架构师,和Stan Lippman一起在微软主持VC 2005(即C++/CLI)的设计。
Andrew Koenig是AT&T 公司Shannon实验室大规模编程研究部门中的成员,同时也是C++ 标准委员会的项目编辑,是一位真正的C++ 内部权威人物。Andrew Koenig 的编程经验超过30 年,其中有15 年在使用C++,已经出版了超过150 篇和C++ 有关的论文,并且在世界范围内就该主题进行过多次演讲,他对C++的最大贡献是带领Alexander Stepanov 将STL引入C++
Andrew Koenig 标准。

《C++语言入门经典》一第1章 初识C++——“Hello World!” 1.1 C++的历史背景相关推荐

  1. 入门C语言模板,C语言入门经典-C语言编程

    C语言入门经典-C语言编程Tag内容描述: 1.第01章C语言编程,C语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让 ...

  2. c语言编程培训ppt,C语言入门经典-C语言编程.ppt

    <C语言入门经典-C语言编程.ppt>由会员分享,可在线阅读,更多相关<C语言入门经典-C语言编程.ppt(27页珍藏版)>请在人人文库网上搜索. 1.第01章 C语言编程,C ...

  3. c语言入门经典doc,C语言入门经典C语言编程.ppt

    C语言入门经典C语言编程.ppt 第01章 C语言编程,C语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序即一组指令,并让计算机依指令行事 ...

  4. c语言入门经典第五版自学,C语言入门经典(第5版) PDF扫描[103MB]

    C语言入门经典(第5版)  内容简介: C语言是每一位程序员都应该掌握的基础语言.C语言是微软.NET编程中使用的C#语言的基础:C语言是iPhone.iPad和其他苹果设备编程中使用的Objecti ...

  5. C语言入门经典(第5版)之编程初步

    为什么80%的码农都做不了架构师?>>>    现在读者一定很渴望编写程序,让计算机与外界进行实际的交互.我们不希望程序只能做打字员的工作,显示包含在程序代码中的固定信息.的确,编程 ...

  6. c语言入门经典18个程序,C语言入门经典

    面向C语言初学者,详细且全面地讲解了C语言的各种知识,从基础知识到高级应用,由浅入深,循序渐进地引领读者掌握C语言中的各种编程技术,体会C语言的灵活与强大.同时,<C语言入门经典>着眼于应 ...

  7. 编程入门c语言ppt,C语言入门经典-C语言编程.ppt

    <C语言入门经典-C语言编程.ppt>由会员分享,可在线阅读,更多相关<C语言入门经典-C语言编程.ppt(27页珍藏版)>请在装配图网上搜索. 1.第01章 C语言编程,C语 ...

  8. c语言入门经典必背18个程序,c语言入门经典必背18个程序

    c语言入门经典必背18个程序 1 . /* 输出 9*9 口诀.共 9 行 9 列, i 控制行, j 控制列. */ #include "stdio.h" main() {int ...

  9. C语言入门经典书目推荐--转

    国内良莠不齐的C语言教程数不胜数,同名如"C程序设计""C语言程序设计""C语言程序设计教程"的都多如牛毛,这些不知名的就不予考虑了,要看就 ...

  10. 计算机书籍-Go语言入门经典SAMS Teach Yourself

    书名:Go语言入门经典 作者:[英]乔治 奥尔波(George Ornbo) 出版社:人民邮电出版社 出版时间:2018年08月 去当当网了解

最新文章

  1. 闭包,函数式编程学习小记
  2. java提高篇(三十)-----Iterator
  3. 【教程】Linux DNS 服务器安装、配置及维护
  4. 每日程序C语言28-有序数组插入元素
  5. 玻璃体混浊不要转眼球
  6. mysql按月进行表分区
  7. scrapy 分布式 mysql_Scrapy基于scrapy_redis实现分布式爬虫部署的示例
  8. Python中的字典(Dictionary)
  9. qt qtableview mysql_Qt数据库编程中QTableView使用方法
  10. Javascript特效:字体火焰背景
  11. 测量学1_测量学的基本知识
  12. 这些真实的“猥琐程序员”,今天必须曝光!
  13. jQuery学习笔记之closest()
  14. FS8P2711B户外红蓝双闪肩灯指示灯IC
  15. react 日期怎么格式化_react日期格式化组件
  16. 声音(音乐)分类综述
  17. 干支纪年法简便算法_高中化学分类学法指导!附高考化学必记知识点及规律
  18. 与文本内容无关的说话人识别概述——从特征到超矢量
  19. notepad++ 同时搜索多个关键字
  20. qt文本转语音tts的使用方法,QTextToSpeech

热门文章

  1. git提交,IDEA中发现有的文件名变成蓝色,将蓝色变成白色的解决方法
  2. [FC][SRAM扩容教程(Mapper 4为例)]
  3. 【c语言训练】尼科切斯定理的验证
  4. 众享比特董事长严挺受邀讲授《区块链:概念及应用》
  5. EPC C1G2标准下的标签状态转换仿真
  6. pb管能用ppr热熔器吗_暖气改造pb管和ppr管到底怎样对接,看完才知道我家做错了!...
  7. LabVIEW+Proteus环境温湿度监控系统
  8. 中国的尺和英尺的区别
  9. 简易烟雾监测系统搭建(一) 烟雾传感原理篇
  10. Btrfs文件系统管理及应用