本书全面系统地讲述了C++语言的基本概念、语法和面向对象的编程方法,对C++语言面向对象的基本特征:类和对象、继承性、派生类、多态性和虚函数等风容作了详尽的介绍。 本书具有丰富的例题,每章后面备有形式多样的练习题。内容安排上循序渐进、深入浅出,力求通俗易懂、突出重点、侧重应用。\r\n 本书从C语言着手,由浅入深,逐步进入C++语言世界。本书既适合于具有一定的C语言基础的读者学习,也适合于未学习过C语言,但有一定的程序设计基础的读者学习。\r\n 本书中所有程序都在Trubo C++ 3.0和Visual C++6.0环境下运行通过。与本教材配套的《C++程序设计实验指导与实训》中含有实际工程项目开发的完整案例,供读者自学参考。 本书为授课教师免费提供用PowerPoint制作的电子教案。\r\n 本书不仅可作为高职高专、大专院校学生C++程序设计教材,也可作为C++语言培训教材和从事计算机软件开发的工程技术人员的参考书。
序\r\n前言\r\n\r\n第1章 绪论\r\n\r\n1.1 C++的发展历史\r\n1.2 C++程序的开发过程\r\n1.3 C++的词法与规则\r\n1.3.1 C++的字符集\r\n1.3.2 词与词法规则\r\n1.3.3 书写格式\r\n1.4 面向对象程序设计\r\n1.5 C++程序的构成\r\n习题\r\n\r\n第2章 数据类型和表达式\r\n\r\n2.1 数据类型\r\n2.1.1 基本类型\r\n2.1.2 空类型\r\n2.1.3 构造类型\r\n2.1.4 指针类型\r\n2.1.5 类类型\r\n2.2 常量\r\n2.2.1 整型常量\r\n2.2.2 浮点数常量\r\n2.2.3 字符常量与字符串常量\r\n2.2.4 布尔常量\r\n2.2.5 枚举常量\r\n2.3 变量\r\n2.3.1 变量名命名\r\n2.3.2 变量定义和说明\r\n2.3.3 变量初始化\r\n2.4 运算符与表达式\r\n2.4.1 算术运算符\r\n2.4.2 赋值运算符\r\n2.4.3 关系运算符\r\n2.4.4 逻辑运算符\r\n2.4.5 自增、自减运算符\r\n2.4.6 条件运算符\r\n2.4.7 位运算符\r\n2.4.8 sizeof运算符(求字节运算符)\r\n2.4.9 逗号运算符\r\n2.4.10 运算符优先级\r\n2.4.11 表达式\r\n2.4.12 数据类型转换\r\n习题\r\n\r\n第3章 控制语句\r\n\r\n3.1 顺序控制语句\r\n3.1.1 表达式语句\r\n3.1.2 输入/输出(I/O)\r\n3.1.3 复合语句\r\n3.2 选择控制语句\r\n3.2.1 if…else语句\r\n3.2.2 switch语句\r\n3.3 循环控制语句\r\n3.3.1 while语句\r\n3.3.2 do…while语句\r\n3.3.3 for语句\r\n3.4 跳转语句\r\n3.4.1 break语句\r\n3.4.2 continue语句\r\n3.4.3 goto语句\r\n3.5 几个应用程序\r\n习题\r\n\r\n第4章 函数\r\n\r\n4.1 函数概述\r\n4.2 函数的定义与声明\r\n4.2.1 函数的定义\r\n4.2.2 函数的声明\r\n4.3 函数的调用\r\n4.3.1 函数调用的格式\r\n4.3.2 函数调用的过程\r\n4.3.3 函数调用时的参数传递\r\n4.3.4 内联函数\r\n4.3.5 重载函数\r\n4.3.6 带默认形参值的函数\r\n4.3.7 函数的嵌套调用\r\n4.3.8 函数的递归调用\r\n习题\r\n\r\n第5章 数组\r\n\r\n5.1 一维数组\r\n5.1.1 一维数组的定义\r\n5.1.2 一维数组的初始化\r\n5.1.3 数组的赋值\r\n5.1.4 数组元素的引用\r\n5.1.5 数组越界\r\n5.2 二维数组\r\n5.2.1 二维数组的定义\r\n5.2.2 二维数组初始化\r\n5.2.3 省略第一维大小\r\n5.3 多维数组\r\n5.3.1 多维数组的定义\r\n5.3.2 多维数组初始化\r\n5.3.3 省略第一维大小\r\n5.4 数组与函数\r\n5.5 数组的应用\r\n习题\r\n\r\n第6章 指针\r\n\r\n6.1 指针的概念\r\n6.2 指针的定义和使用\r\n6.2.1 指针的定义\r\n6.2.2 指针的使用\r\n6.2.3 指针的灵活性\r\n6.2.4 二级指针\r\n6.3 指针运算\r\n6.3.1 指针的算术运算\r\n6.3.2 指针的关系运算\r\n6.3.3 指针的赋值运算\r\n6.4 void指针和const指针\r\n6.4.1 void指针\r\n6.4.2 const指针\r\n6.5 指针与数组\r\n6.5.1 指针访问数组元素\r\n6.5.2 数组指针与指针数组\r\n6.6 动态内存分配\r\n6.6.1 new运算符\r\n6.6.2 delete运算符\r\n6.7 指针与字符串\r\n6.7.1 通过指针访问字符\r\n6.7.2 常用的字符串处理函数\r\n6.8 指针与函数\r\n6.8.1 指针作为函数参数\r\n6.8.2 指针型函数\r\n6.8.3 函数指针\r\n习题\r\n\r\n第7章 结构体与共用体\r\n\r\n7.1 结构体的概念\r\n7.2 结构体类型变量的定义方法\r\n7.2.1 先定义结构体类型再定义变量名\r\n7.2.2 在定义类型的同时定义变量\r\n7.2.3 直接定义结构类型变量\r\n7.3 结构体变量的使用形式和初始化\r\n7.3.1 结构体变量的使用形式\r\n7.3.2 结构体变量的初始化\r\n7.4 结构体数组\r\n7.4.1 结构体数组的定义\r\n7.4.2 结构体数组的初始化\r\n7.4.3 结构体数组的使用\r\n7.5 结构体与指针\r\n7.5.1 结构体指针\r\n7.5.2 结构体数组指针\r\n7.5.3 结构体指针数组\r\n7.6 结构体与函数\r\n7.6.1 传递结构值\r\n7.6.2 传递结构体的引用\r\n7.6.3 传递结构体的指针\r\n7.7 共用体\r\n7.7.1 共用体的概念\r\n7.7.2 共用体变量的使用形式\r\n习题\r\n\r\n第8章 类和对象\r\n\r\n8.1 类和对象\r\n8.1.1 类的定义\r\n8.1.2 类的成员函数\r\n8.1.3 类和结构\r\n8.2 类对象\r\n8.2.1 对象的定义格式\r\n8.2.2 对象成员的表示方法\r\n8.3 构造函数和析构函数\r\n8.3.1 构造函数\r\n8.3.2 析构函数\r\n8.3.3 带参数的构造函数\r\n8.3.4 重载构造函数\r\n8.4 类的初始化\r\n8.5 复杂的对象表示\r\n8.6 堆与拷贝构造函数\r\n8.6.1 堆对象\r\n8.6.2 new和delete\r\n8.6.3 拷贝构造函数\r\n8.7 this指针\r\n8.8 引用\r\n8.8.1 引用标识符&\r\n8.8.2 Const和volatile\r\n8.9 常类型\r\n8.9.1 常引用\r\n8.9.2 常对象\r\n8.9.3 常对象成员\r\n习题\r\n\r\n第9章 运算符重载\r\n\r\n9.1 运算符重载概述\r\n9.2 运算符重载的实现\r\n9.3 单目运算符重载\r\n9.4 双目运算符重载\r\n9.5 ->运算符重载\r\n9.6 赋值运算符重载\r\n9.6.1 运算符“+=”和“-=”的重载\r\n9.6.2 运算符“=”的重载\r\n9.7 下标运算符重载\r\n9.8 运算符new与似delete重载\r\n9.9 逗号运算符重载\r\n9.10 类型转换运算符重载\r\n9.11 运算符重载应用实例\r\n习题\r\n\r\n第10章 静态成员与友元\r\n\r\n10.1 静态成员\r\n10.1.1 静态数据成员\r\n10.1.2 静态成员函数\r\n10.2 友元\r\n10.2.1 友元函数\r\n10.2.2 友元类\r\n10.3 友元应用实例\r\n习题\r\n\r\n第11章 继承和派生类\r\n\r\n11.1 基类和派生类\r\n11.1.1 派生类的定义格式\r\n11.1.2 派生类的3种继承方式\r\n11.1.3 访问控制\r\n11.1.4 基类与派生类的关系\r\n11.2 单继承\r\n11.2.1 构造函数\r\n11.2.2 析构函数\r\n11.2.3 继承中构造函数的调剁帧序\r\n11.2.4 应注意的问题\r\n11.3 多继承\r\n11.3.1 多继承的概念\r\n11.3.2 多继承的构造函数\r\n11.3.3 二义性和支配原则\r\n11.3.4 赋值兼容规则\r\n11.4 虚基类\r\n11.4.1 虚基类的引入\r\n11.4.2 虚基类的构造函数\r\n11.5 应用实例\r\n习题\r\n\r\n第12章 模板\r\n\r\n12.1 模板的概念\r\n12.2 函数模板\r\n12.2.1 函数模板说明\r\n12.2.2 使用函数模板\r\n12.2.3 重载模板函数\r\n12.3 类模板\r\n12.3.1 类模板说明\r\n12.3.2 使用类模板\r\n12.4 模板应用实例\r\n习题\r\n\r\n第13章 多态性与虚函数\r\n\r\n13.1 普通成员函数重载\r\n13.1.1 函数重载的方法\r\n13.1.2 函数重载的表示形式\r\n13.1.3 函数重载的注意事项\r\n13.1.4 函数重载的二义性\r\n13.2 派生类指针\r\n13.3 虚函数\r\n13.3.1 虚函数的概念\r\n13.3.2 使用虚函数的注意点\r\n13.3.3 虚函数与重载函数的比较\r\n13.4 纯虚函数与抽象类\r\n13.4.1 纯虚函数\r\n13.4.2 抽象类\r\n习题\r\n\r\n第14章 I/O流\r\n\r\n14.1 C++流的概念\r\n14.2 格式化I/O\r\n14.2.1 ios类中的枚举常量\r\n14.2.2 ios类中的成员函数\r\n14.2.3 格式控制操作符\r\n14.3 检测流操作的错误\r\n14.4 文件流\r\n14.4.1 文件的概念\r\n14.4.2 文件的打开与关闭\r\n14.4.3 文件的读写\r\n14.5 字符串流\r\n习题\r\n\r\n第15章 异常处理\r\n\r\n15.1 异常处理概述\r\n15.2 异常处理的基本思想\r\n15.3 C++异常处理的实现\r\n15.3.1 异常处理的语法\r\n15.3.2 异常处理的规则\r\n15.4 C++库中的异常类\r\n15.5 多路捕获\r\n15.6 含有异常的程序设计\r\n15.6.1 何时避免异常\r\n15.6.2 异常的典型使用\r\n习题\r\n\r\n第16章 C++程序设计综合实例\r\n\r\n16.1 院校管理系统\r\n16.1.1 问题描述\r\n16.1.2 算法分析\r\n16.1.3 数据说明\r\n16.1.4 功能说明:定义父类和相关的子类\r\n16.1.5 参考程序:“院校管理系统”程序实例\r\n16.2 图书管理系统\r\n16.2.1 问题描述\r\n16.2.2 算法分析\r\n16.2.3 参考程序:"图书管理系统"程序实例\r\n\r\n参考文献
C++语言是目前使用最为广泛的一种高效程序设计语言,它既可以进行过程化程序设计,也可以用于面向对象的程序设计。C++是从C语言发展演变而来的,是C语言的超集。它实现了类的封装、数据隐藏、继承及多态,使得其代码容易维护并具有高度可重用。
本书作为一本C++语言的入门教材,不仅详细介绍了C++语言本身,而且深入讲述了面向对象程序设计的方法。本书的主要特点是语言流畅、简洁易懂、例题丰富、实用性强。这使得读者不仅可以学会一门程序设计语言,还能初步掌握面向对象的程序设计方法。其中丰富的例题使得初学者可以在学习的同时就开始积累初步的编程经验,以尽快达到学以致用的目的。
本书内容包括:
第1章绪论,主要介绍C++的发展历史,面向对象程序设计的概念,C++的词法与规则,C++程序的结构与实现。
第2章数据类型和表达式,主要介绍数据类型,常量、变量,运算符与表达式,流控制,数据的输入输出等内容。
第3章控制语句,主要介绍C++语句,顺序、分支和循环程序设计。
第4章函数,主要介绍函数的定义与声明,函数调用,函数重载和内联函数等内容。
第5章数组,主要介绍一维数组、二维数组与多维数组以及数组与函数等内容。
第6章指针,主要介绍指针的概念,指针运算,指针与数组,指针与函数,指针与字符串,动态内存分配等。
第7章结构体与共用体,主要介绍结构体类型变量的定义方法,结构体变量的初始化,结构体数组,结构体与数组,结构体与函数、共用体等。
第8章类和对象,主要介绍类、对象,对象的初始化,构造函数与析构函数,堆与拷贝构造函数,this指针,常对象,引用等。
第9章运算符重载,主要介绍单目和双目运算符重载,new和deIete重载以及逗号运算符及类型转换运算符重载。
第10章静态成员与友元,主要介绍静态成员和静态成员函数,友元函数和友元类。
第11章继承和派生类,主要介绍基类和派生类,单继承、多继承和虚基类。
第12章模板,主要介绍模板的概念,函数模板和类模板。
第13章多态性与虚函数,主要介绍普通成员函数重载,派生类指针,虚函数,纯虚函数和抽象类等。
第14章I/O流,主要介绍I/O标准流类,键盘输入、屏幕输出,磁盘文件的输入和输出,字符串流等内容。
第15章异常处理,主要介绍异常的概念,基本原理,异常处理机制,异常处理方法和多路捕获。
第16章C++程序设计实例,介绍院校管理系统和图书管理系统两个实例。
本书中的所有例题都在Visual C++6.0环境下运行通过,在其他版本的编译系统下一般都可以运行。为了方便教学,本书为授课教师免费提供用PowerPoint制作的电子教案,教师在使用时可以根据需要进行必要的修改。与本教材配套的《C++程序设计实验指导与实训》中含有实际工程项目开发的完整案例,供学生进行课程设计时参考。
本书对于学过或没有学过C语言的读者都是适用的。如果学过C语言,则可以对第1章至第7章快速阅读,重点掌握C++与C语言概念、语法、表达形式上的区别。在学习第8章至第16章时,重点放在把握C++程序设计的灵魂,掌握面向对象程序设计的方法,遇到概念不清之处,也可以根据章节目录查阅第1章至第7章的内容。
本书为高职高专的C++程序设计教材,建议授课学时为48课时,上机实践学时为24课时,课程设计学时为16课时。各院校可根据教学实际情况适当增删。
本书也可作为大中专院校的程序设计课程教材和各类培训机构培训教材,还可供从事计算机应用的工程和技术人员参考。
本书编写过程中,编者参阅了许多C++的参考书和有关资料,并阅读了一些翻译的书籍,现谨向这些书的作者和译者表示衷心的感谢。
本书由蔡立军策划并担任主编和全书的统稿工作。湖南大学计算机与通信学院银红霞编写第1章至第7章,杜四春编写第8章至第16章。参加了本书编写大纲讨论与部分编写工作的有:梁志武、李向军、杜焱、张帆等。杜碧秋、廖名幼、王梅仙、杜佳惠等作了本书的文字录入和图表制作等工作。
由于编者水平有限,书中不妥或错误之处在所难免,恳请专家和广大读者批评指正。欢迎广大读者通过电子邮件与作者联系,作者的电子邮件地址为:Ijcaihn@sina.com;d_SC@Sina.com。
编者
2002年11月于岳麓山