在面向对象程序设计(OOP)语言中,C++语言是最流行的语言之一,对象技术(OT)的核心方法使软件产业发生了革命性的变化。OOP所建立的程序具有许多优点,例如,组织好、容易理解和修改灵活,并且可以在许多不同的场合重复使用等等。它减少了复杂性并且使软件的生产和维护更加经济。C什语言由国际标淮化组织(ISO)和美国国家标准化组织(ANSI)共同进行了标准化。ISO/ANSI C++语言标准(ISO/IEC FDIS 14882)已经在1997年11月获得批准。
在标准C++语言中引入了许多新的特性,它们包括布尔类型、异常、名称空间、运行时类型标识符、类型转换符表示法和带有通用算法的模板库。标准C++语言也修改和扩展了许多已有特性,包括宽字符类型、模板和函数调用解析。一个新的string类使得字符串更加容易使用。
本书是《C++ wigh Object -Oriented Programming》的一个修订本包括了标准C++的所有内容并且保留了以前的内容。C++的构造与清晰、简明的ooP技术相匹配。语言机制独立地进行解释并再组合起来以达到OOP的目的。基于对象的、面向对象的和通用的程序设计技术在本书的实例程序中都有示范,以显示它们在实际中的应用。第12章还讲述了如何将C++语言应用到Web CGI程序设计中。
面向对象
因为C++语言效率非常高并且支持OOP,所以它非常重要。因此OOP的概念和技术就作为C++程序设计的集成部分来讲述。这样就将OOP概念带回了现实中,使得它们变得容易理解。面向对象很早就进行过介绍并且用许多完整的例子进行了说明。在这里将明确地讲述怎样用这些技术来解决问题,以及这些技术怎样使程序变得更加灵活,并可复用。
关键的面向对象的概念,加数据抽象、封装、信息隐藏、用对象处理的问题、通用化、继承和多态性,将在本书中进行全面的介绍。面向对象设计的基础知识也包含在其中。它们通过许多C++的实例进行说明。例如本书包守了一个银行账户的例子,这个例子贯穿了许多章节,并且不断地有新的内容加入。
动手实践的方法
学习编程的最好方法就是去写程序。介绍了清晰的概念和很好的例子之后,本书就鼓励你尽快编写有趣的程序。第1章和第2章介绍C++语言的重要组成部分和面向对象程序设计,从而使你快速入门。关于对象内容的介绍(如C++编程技巧)和风格向导将帮助你开始学习编程。
在第5章介绍—个袖珍计算器模拟程序。这个程序随着新章节和例子的引入而不断更新。最后,在第13章就会完成一个逼真的小计算器程序了,它包含了许多重要的OOP概念和C++结构。
内容的全面概括
本书全面而深入地介绍了标准C++语言。根据学生的需要,将标准C++描述为一个完整的自我解释的语言。本书还包含了许多不断更新的例子,提供了许多机会重新访问熟悉的代码,并且将注意力集中在引入的新的概念和特性上。
可以将本书作为一门课程的教材。除了基本的主题外,本书还包括标准库、I/O流类、模板、标准板库(STL)、通用算法、程序组织、头文件的使用、错误和异常处理、预处理和编译(在UNIX上和在PC机上)。
面向对象的重点主题包括以下内容:建立软件对象,比较内部工作与外部行为,用封装减少复杂性,在已有的类上派生出新类,编写通用的、可以在许多情况下重用的代码,创建使用了插入兼容的软件“黑匣子”,并且建立与多种类型对象一起工作的多态性过程和对象。同时也包含面向对象的设计技术、方法和应用。
OOP使得编程变得简单
标准C++是一个巨大并且复杂的语言。它在新的OOP的概念和支持C++结构方面很容易使人迷惑。只有通过努力才能使这个复杂的课程变得容易掌握和易于理解。这个过程是以简单的话题和关键的概念作为基础的。然后,以逻辑的顺序添加更高级的主题。书中还描述可能遇到的问题并且提供了答案。清晰有趣并且实用的例子说明了如何编写面向对象的程序和怎样应用所介绍的概念和技术。
继承是OOP的一个关键特性,它对于初学编程的程序员来说比较难于理解。书中绘制了一个派生类清晰的结构图以及它与一个基类的关系,派生类是建立在这个基类之上的。而且明确地提供了派生的原理和它的恰当用法。多重继承部分也有清晰的好例子。
多态性和插入兼容是OOP的核心技术,应该非常熟练地使用它们。在本书中用了整整一章来描述这两个主题,提供的材料足以向最聪明的学生提出挑战。Web应用
用C++编写的CGI程序可以快速、高效地执行。本书用一章简练地描述了HTML格式和CGI程序设计的过程,这一章是OOP概念和C++技术的一个很好的应用。该章还给出和解释了一个用于C++编程的C++类库,以及怎样使用这个库进行C++程序设计。
灵活的用法
本书可以作为一门程序设计课程的教材,课程对象可以是大学三年级、四年级的本科生或刚入学的研究生。本书假设读者没有C语言基础,但是最好有一定的程序设计经验,这样可以更好地理解软件的复杂性。如果你已经具有C语言或者ANSI C语言方面的知识,那么它将减少你的学习量。对于一个初级的读者来说,前面章节中的内容应该仔细研究。高级的主题,如用户定义的自由存储管理、CGI编程(第12章)和面向对象设计(第13章)可以忽略不读。对于一个高层次读者来说,第1章和第14章可以作为背景材料进行阅读,从而为其他的主题留出更多的时间。
. 就像在每章结尾的习题中建议的那样,对于那些有实际程序设计经验的人,应强调通用程序设计、模板编写和面向对象程序设计项目。在这种情况下,应该早一点学习第13章中的程序设计内容。
无论何时,只要觉得合适就可以介绍(或者让学生自己阅读)第14章中的预处理和编译内容。第2章到第11章是本书的核心内容,它们具有挑战性并且适合于任何读者阅读。
本书也可以作为OOP、数据结构或用C++实现面向对象设计课程的一个很好的补充。对读者系统的要求
C++语言是一个独立的系统。示例程序可以运行在任何具有C++实现的地方,如工作站、PC机和多用户服务器。第14章给出了关于预处理、编译和执行程序的一些一般信息。自由软件基金会为我们提供了g++,它是一个很好的C++实现,你可以在下面的站点免费下载:
http://WWW.gnu.ai.mit.edu/software/gcc (用于UNIX用户)
http://WWW.delorie.com/djgpp/ (用于PC用户)
容易查找的参考
本书采用了循序渐进的论述方法,在旧的概念上建立新的概念使得本书变得更加容易理解。然而,本书也是一个很好的参考工具,书中组织了许多信息使你可以很容易进行参考,如表、图、语法注释、例子和总结。所有C++语言的重要结构都收集在附录A中以便于快速查找。附录B总结了一些特殊成员函数的用法。其他的一些附录包括调试、库函数和C++语言与C语言的混合用法。
示例程序包
在本书中,概念和编程结构都有足够的实例来说明。示例程序包按照章节来组织,大约有400个文件包含了完整的用来编译的源代码。用于UNIX和PC的完整的示例程序包都可以在下面的站点中得到:
www.brookscole.com