图书前言

第2版前言

C++语言继承了C语言简洁精练、功能强大的优点,依托面向对象的程序设计技术,成为目前程序员使用最多的编程语言之一。

2011年,国际标准化组织(ISO)和国际电工委员会(IEC)旗下的C++标准委员会(ISO/IEC JTC1/SC22/WG21)正式发布了C++语言的新标准——C++11; 紧接着作为对C++11标准的补充和完善,又于2014年和2017年分别发布了C++14和C++17。

相比于C++98,新的C++标准增加了许多新的内容,使它看上去像一门全新的编程语言。本着“面向发展、与时俱进”的治学精神,本教材推出了第2版。

本版教材涵盖了绝大多数C++11/C++14标准新引进的内容,包括: 

(1) C++11/C++14新增的long long、long double等数据类型; 

(2) 变量和对象的列表初始化方法; 

(3) 自动类型推定技术; 

(4) 基于范围的for循环语句; 

(5) 左值和右值的概念; 

(6) 左值引用类型和右值引用类型; 

(7) lambda函数和function对象; 

(8) 可变长参数的模板函数; 

(9) C++11移动语义之类的移动构造函数; 

(10) C++11移动语义之类的移动赋值运算符; 

(11) C++11移动语义之强制移动; 

(12) override和final限定说明符。

除了上面列出的C++11/C++14新引入的内容,本教材还对第1版的部分内容进行了修改和补充,包括: 

(1) 增添了函数指针作为函数参数的内容; 

(2) 对原来例程中一些不安全的库函数调用进行了修正; 

(3) 用Visual Studio 2015取代VC++6.0作为程序的开发环境,并对相应的章节内容进行了修改;

(4) 新增了“标准模板库”等内容。

Visual Studio 2015是微软公司于2015年推出的一款功能强大的跨平台、跨语言的编程工具,且对C++11/C++14新标准提供完美支持。它具有企业版、专业版、社区版等多个不同的版本,其中社区版是免费的,读者可以自行到微软官方网站下载试用。本书中的所有例程都使用Visual Studio 2015重新进行了编译。

本次改版工作主要由武汉轻工大学数学与计算机学院的董正言负责完成,由于作者学识水平和时间的限制,

书中疏漏和不妥之处在所难免,敬请批评指正。

作者

2019年7月

第1版前言

面向对象程序设计技术是当前主流的程序设计技术。和传统的面向过程的程序设计技术相比,面向对象程序设计技术具有明显的优势。这种优势主要体现在以下几个方面。

(1) 传统的面向过程的程序设计方法忽略了数据和操作之间的内在联系,程序中的数据和操作它们的方法分离。而面向对象程序设计技术将程序要处理的数据和处理它们的方法封装在一起,构成一个统一体——对象。程序中用对象模型来建模现实世界中的事物。这样就使解空间模型的结构和问题空间模型的结构相一致。使用面向对象的方法解决问题的思路更加符合人类一贯的思维方法。

(2) 面向对象的封装技术为程序提供了更好的数据安全性。

(3) 面向对象的继承技术为程序提供了更好的可重用性。

(4) 面向对象的多态调用技术使程序具有了更好的可扩展性。

(5) 和传统的面向过程的程序设计方法相比,面向对象的程序设计技术更适合开发大型的图形界面应用程序。

目前,常用的面向对象的编程语言有C++、Java、C#等。

C++语言是由C语言发展演变出的一种面向对象的程序设计语言。它既具备C语言面向过程设计方法的特点,同时又支持面向对象的程序设计方法。它是目前拥有程序员数目最多的编程语言之一。

本书以C++语言为基础,阐述面向对象的编程原理。本书的特色是内容全面、语言简洁易懂、重点突出,是一部面向大学本科计算机科学相关专业的入门教材。

为了使读者能够透彻理解面向对象编程的原理和方法,本书中使用了大量自编的例程。全部例程的源代码均使用VC++6.0编写,并编译通过。

本书的主编是董正言,张聪也参加了部分章节的撰写工作。

由于作者学识水平和时间的限制,书中疏漏和不妥之处在所难免,敬请批评指正。

作者

2010年3月