多年以来,在编写速度快、功能强的企业级面向对象程序时,C++已经成为事实上的标准语言。令人惊讶的是,尽管C++变得如此普及,我们却很难全面地掌握这种语言。一些专业C++程序员会使用一些简单但功能很强大的技术,但以往传统的资料中对此都未曾提及;另外,C++中还有一些有用的部分,这些内容即使是对经验丰富的C++程序员来说可能也很神秘。.
通常,编程方面的书更多地强调语言的语法,而不注重讲述如何实际使用这种语言来编程。一般的C++书都会分章介绍C++语言的各个主要部分,来解释相关的语法,并提供一个例子。本书不打算落人这种“俗套”。一般的图书只介绍这种语言方方面面的具体细节,而不关注实践内容,本书则不同,我们的目的很明确,就是要教你如何在实际工作中使用C++。你会从书中了解到一些鲜为人知的特性,这些特性能使你的开发更为轻松;另外这里还提供了一些可重用的编码模式,专业的程序员就是因为掌握了这些模式而从初学者中脱颖而出。
本书读者对象
即使你用C++已经很多年了,对这种语言的一些更为高级的特性可能还是不太熟悉,或者并没有充分利用到C++的全部功能。也许你编写的C++代码确实也能完成任务,但是你还想更多地了解如何完成C++设计,以及怎样才是好的编程风格。也许你是刚刚接触C++的初学者,想有一个好的起点,希望了解怎样才能“正确地”编写程序。本书将使你的C++水平更上一个台阶,达到专业水准。
因为这本书的目的是让你进阶,从对C++只有基本或初步的了解,转变成一名专业的C++程序员,因此我们假设你对这种语言已经有一定的认识了。第1章相当于一个复习,其中介绍了C++的基本知识,不过仅凭这一章,并不能取代踏踏实实的培训和具体地使用这种语言。即使你刚开始学习C++,但C编程的经验很丰富,阅读第1章应该也够了,你需要的大多数知识都能从中找到。无论如何,你都应当有牢固的编程基础,除了应该对循环、函数和变量等内容了如指掌外,还应该知道如何组织程序的结构,对诸如递归等基本技术应该也不陌生。另外,你应当对散列表和队列等常用的数据结构有一定了解,还应该知道排序和查找等有用的算法。当然,你可以不了解面向对象编程,这部分内容将在第3章介绍。
你可以采用任何编译器来开发代码,但必须熟悉所用的编译器。本书不会提供各种编译器的具体用法说明,你可以参考编译器随附的文档来回顾有关的内容。
本书内容
本书提供了一种C++编程方法,这种方法不仅可以改进你的代码质量,还可以提高编程效率。本书不单单讲述C++的语法和语言特性,它还强调了一些编程方法、可重用的设计模式以及好的编程风格。其中,编程方法涵盖了整个软件开发过程,从开始设计和编写代码,到测试、调试和分组工作都有涉及。学完本书,你将掌握C++语言和它的诸多特性,并能充分利用C++的强大功能来完成大规模软件开发。
假设有人已经学过C++的所有语法,但没有见过任何一个简单实例,这就很危险了!没有做过或看 过具体的例子,他可能会认为所有代码都应当放在程序的main()函数中,或者认为所有变量都应当是全局变量,而通常这些做法都是不好的编程实践。
专业的C++程序员除了了解C++的语法之外,还知道如何正确地使用这种语言。他们认识到好的设计极其重要,并了解面向对象编程理论,知道有哪些最佳的方法来使用现有的库。这些专业的程序员已经开发了大量有用的代码,并提出了许多可重用的思想。..
通过阅读本书,你将成为一个专业的C++程序员。你对C++的了解将更为深入,会掌握一些鲜为人知而且通常被误解的语言特性。除此以外,你将学习面向对象程序设计的内容,并获得一些高超的调试技巧。最重要的是,读过这本书后,你的脑海中会留下许多可重用思想,这些思想能够用于实际日常工作当中。
为什么费心尽力地想要成为一个专业的C++程序员,而不是一个只了解C++皮毛的程序员,原因有很多。如果能通晓C++语言的实际工作原理,将大大改善你的代码质量。通过了解不同的编程方法和过程,将有助于你更好地与你的开发小组协作;若能发现可重用的库和常用的设计模式,将有助于提高你的日常工作效率,并避免重蹈覆辙。所有这些,都将使你成为一个更好的程序员和一个更有价值的员工。不过,就算本书没有带给你升迁之喜,多了解一些总不是坏事吧!
本书的组织结构
本书包括6大部分。
第一部分,“专业C++程序设计概述”,先提供C++基础知识的快速入门课程,为你奠定一定的C++基础。在入门课程之后,将分析C++设计方法。你会了解到设计的重要性、面向对象方法、库和模式的使用、代码重用的重要性,以及当前为众多编程机构所用的工程实践方法。
第二部分,“编写C++代码方式”,这一部分从专业角度为读者提供了一次C++技术之旅。从中可了解到如何编写可读的C++代码,如何创建可重用的类,以及如何充分利用诸如继承和模板等重要的语言特性。
第三部分,“掌握C++高级特性”,在此介绍了如何更充分地利用C++。本书这一部分展示了C++的诸多神秘之处,并介绍了如何使用这样一些更高级的特性。在这一部分中你将看到C++语言中一些不常用甚至有些古怪的部分,并了解C++中管理内存有哪些好方法,此外还将学习输入输出技术、专业级错误处理、高级的操作符重载、如何编写高效的C++代码,以及如何编写跨语言和跨平台的代码。
第四部分,“确保无错代码”,这一部分的重点是如何编写企业质量的(enterprise-quality)软件。你将了解一些软件测试概念,如单元测试和回归测试,还将学习调试C++程序时会用到的一些技术。
第五部分,“使用库和模式”,这一部分介绍了库和模式的使用,基于库和模式的编程,不仅可以使你更省力,还可帮助你编写出更好的代码。你将了解C++提供的标准库,包括诸如扩展标准库的一些高级主题。你还将学习分布式对象、可重用C++设计技术和概念上的面向对象设计模式的有关内容。
本书最后一部分对各章提供了一个实用指南,以方便查阅有关的C++技术。在本书相关网站上(www.wrox.com),还能找到C++标准库的一个实用参考指南。
.使用本书的前提
要使用这本书,只要有一个安装了C++编译器的计算机就足够了。不同的编译器在对C++语言的解释上往往存在差别,不过本书只关注C++中已经标准化的部分。本书中的所有程序已经在Windows、Solaris和Linux等平台上成功地通过了测试。...