前言

    欢迎进入C++语言的世界,虽然说C++是在C语言的基础上发展而来的,但不同于C语言的面向结构编程机制,C++语言引入了面向对象编程和泛型编程机制,所以,完全可以把C++语言当成一门全新的语言来看,因此,在阅读本书时,并不要求读者有C语言的基础。

    C++语言是由贝尔实验室的Stroustrup于20世纪80年代初开发的,可以说C++是一门很年轻的语言,对C++的研究也一度十分活跃,各种新的特性被提出并尝试加入到这门语言中,为了C++的有序发展,ANSI/ISO C++国际标准第1版于1998年正式发布,2003年又发布了C++国际标准第2版,新标准在老标准的基础上补充了很多内容,现今市面上大部分相关书籍,包括网络上的一些学习资料还停留在1998年的老标准上,虽然现有编译器对1998年的标准和2003年的标准都提供了支持,但从效率和未来的发展方向来看,让初学者从开始就接触较新标准,并掌握C++语言的思维方式是非常重要的,本书就是在这样一个背景下编写的。

    为了使读者能循序渐进地掌握C++的语法机制和编程思想,笔者精心编写了本书。本书根据读者的一般学习习惯,以循序渐进的方式,从最简单的“Hello,World”程序写起,逐步深化、细化,对书中每个知识和技术要点都给予了详细的程序示例及代码分析,这些示例代码不仅一针见血地指明了技术要点的本质,而且短小精练,方便复制和调试。

    本书特色

    本书合理控制了知识点的深度和讲解的进度,给读者展示出C++语言全貌,书中所给示例代码条理清晰、简洁且直透本质,读者可以迅速掌握技术要点的内涵。笔者从事多年项目开发,经验丰富,对技术要点进行了深入浅出的阐述。本书面向初、中级读者,以大量的示例进行示范和解说,其特点主要体现在以下几个方面。

    ❑本书的编排采用循序渐进的方式,每章主题鲜明,要点突出,适合初、中级学者逐步掌握C++的语法规则和编程思想。

    ❑范例丰富,包含几百个代码示例,关键知识点都辅以示例帮助读者理解。范例程序简洁,不是简单的代码罗列,而是采用短小精练的代码紧扣所讲的技术细节,并配以详细的代码解释和说明,使读者印象鲜明,理解透彻。

    ❑内容全面,兼顾了C++语言所有的特性。

    ❑所有示例都十分简洁,具有代表性和理解意义,剪除旁枝末节,揭示技术要点的本质,每个示例集中说明一个概念或要点。

    ❑对于学习中经常遇到的问题与需要注意的关键点予以特别注释。

    ❑大量使用了图例、表格等直观的表达方式。

    ❑本书采用技术要点、详细介绍、示例运行等多种方式进行讲解,系统性强、可用性强,能够给读者留下深刻的印象。

    ❑精选习题,为了给读者在学习知识之余提供更多的实践机会,每一章都配备了各种类型的习题。习题紧扣本章知识点,突出知识的理解和应用。同时,在习题中配备了上机操作题,结合本章的重点来考查,给读者应用所学知识的机会。

    ❑紧扣职场,为了给有可能参加职场面试的朋友提供更多的帮助,在本书最后一章还专门提供了常见面试题。在该章中精选了多年来著名IT公司面试题中与C++语言相关的题目,除了提供最佳答案之外,还对题目进行了深入浅出的分析,帮助读者了解题目特点,把握面试重点。

    本书内容

    本书分为六篇,共21章。

    第一篇(第1~2章)是基础知识介绍,涵盖了程序设计语言的基本概念、Visual C++6开发环境的搭建、C++程序的构成、变量、常量、运算符与表达式、数据类型转换以及流程控制语句等内容。

    第二篇(第3~7章)介绍的是面向过程的C++程序开发,分别介绍了数组和字符串,指针和引用,以及结构、共用体和链表的使用,详细且视角独到地讲述了函数的使用,详细讨论了变量的类型、生存期、作用域和可见域,总结了在编写函数时经常出现的问题,提供了函数编写的建议。

    第三篇(第8~11章)介绍的是面向对象(OOP)的C++程序开发,结合精练的代码讲述了类的设计和使用、多态、虚函数、继承、代码复用、友元等内容,向读者展示了C++面向对象编程的全貌和独特魅力。

    第四篇(第12~13章)讨论的是泛型编程,这是由模板来实现的,使数据结构和算法的定义可以脱离开具体类型的限制,据此,C++提供了标准模板库STL,模板和STL是该篇介绍的重点。

    第五篇(第14~20章)介绍了文件存储和编程规范方面的内容,文件存储从基本的高层I/O机制讲起,而后介绍了C++流类库的使用、异常与错误机制、RTTI及转换类型符的应用,程序编码风格和C++程序编译相关的内容。

    第六篇(第21章)讲解了面试题精选方面的内容,介绍了著名的IT公司关于C++语言程序开发的各种常见面试题,用来帮助读者提高笔试能力,找到满意的工作。

    本书读者

    本书作为C++语言的基础教程,适合于:

    ❑C++的初学者

    ❑想从C语言跨越到C++语言的人员

    ❑了解C++但所学不全面的人员

    ❑想了解C++技术及最新进展的其他人员

    ❑高等院校理科学习C++课程的学生

    ❑使用C++语言进行毕业设计的学生

    ❑使用C++进行项目开发的人员

    ❑供熟悉其他语言的开发人员参考

    ❑企业和相关单位的培训班学员

    ❑掌握C++编程技术想通过此找工作的人员

    ❑拥有很多实践经验的高级读者,可作为参考资料

    本书作者

    本书主要由杨彦强、刘袁红、王浩编著,其他参与编著和资料整理的人员有冯华君、刘博、刘燕、叶青、张军、张立娟、张艺、彭涛、徐磊、戎伟、朱毅、李佳、李玉涵、杨利润、杨春娇、武鹏、潘中强、王丹、王宁、王西莉、石淑珍、程彩红、邵毅、郑丹丹、郑海平、顾旭光。

    作者

    2012年1月