C++程序设计
2009-1
北京邮电大学出版社
谢昕,刘觉夫,王更生 编著
279
本书定位于普通高等院校各专业无多少编程经验的学生,从面向过程程序设计入门,以案例教学为重点,适当穿插NCRE的内容,通过丰富的例题、合理的体系编排、清晰的概念阐述,突出重点、偏重应用,引导学生循序渐进地学习C++的主要内容。学生通过大量的编程训练,能够迅速提高实际应用能力,能用C++去解决实际问题,同时也能顺利地通过等级考试。 本书分为两部分,前6章是结构化程序设计部分,它是C++程序设计的基础,后5章是面向对象程序设计部分,具体介绍了C++语言进行面向对象程序设计的各种概念和方法。既注重理论知识的介绍,又强调实际的应用,力求提高读者利用面向对象程序设计方法和C++语言解决实际问题的能力。 为了方便教学,本书配有完善的CAI教学课件及配套的《C++程序设计实训教程》指导书。本书适合作为普通高校C++语言课程的教材,也可作为学习C++语言读者的参考书。
第1章 C++语言概述 1.1 C++语言简介 1.1.1 C语言 1.1.2 C++语言 1.2 面向对象程序设计的3个主要特征 1.3 C++语言的词法 1.3.1 C++语言的字符集 1.3.2 C++语言标识符 1.3.3 C++斗语言保留字 1.4 C++程序的结构特点与书写格式 1.4.1 C++示范程序 1.4.2 C++程序的基本组成 1.4.3 C++程序的书写格式 1.5 C++程序的实现 1.5.1 编辑 1.5.2 编译 1.5.3 运行 习题第2章 基本数据类型和表达式 2.1 C++的基本数据类型 2.2 常量和变量 2.2.1 常量 2.2.2 变量 2.2.3 符号常量 2.3 简单的输入/输出控制 2.3.1 预定义的插入符和提取符 2.3.2 简单的I/O格式控制 2.4 指针和引用 2.4.1 指针 2.4.2 引用 2.5 运算符和表达式 2.5.1 算术运算符和算术表达式 2.5.2 赋值运算符和赋值表达式 2.5.3 关系运算符和逻辑运算符 2.5.4 位运算符 2.5.5 其他运算符 2.5.6 运算符的优先级和结合性 2.5.7 表达式书写规则 2.5.8 混合运算时数据类型的转换 2.6 程序举例 习题第3章 程序控制结构 3.1 语句 3.1.1 简单语句 3.1.2 声明语句 3.1.3 复合语句 3.2 选择控制 3.2.1 if语句 3.2.2 switch语句 3.3 循环控制 3.3.1 while语句 3.3.2 do—while语句 3.3.3 for语句 3.3.4 循环的嵌套 3.4 转向语句 3.4.1 break语句 3.4.2 continue语句 3.4.3 goto语句 3.5 程序举例 习题第4章 自定义数据类型 4.1 类型定义 4.2 枚举类型 4.3 结构体 4.3.1 结构体概述 4.3.2 结构体变量的定义及初始化 4.3.3 结构体变量的引用 4.4 程序举例 习题第5章 数组 5.1 一维数组 5.1.1 一维数组的说明 5.1.2 一维数组的引用 5.1.3 一维数组的初始化 5.1.4 数组边界检查问题 5.2 二维数组 5.2.1 二维数组的说明 5.2.2 二维数组的存储 5.2.3 二维数组的引用 5.2.4 二维数组的初始化 5.3 字符数组 5.3.1 与“字符”有关的概念回顾 5.3.2 字符数组的概念与说明 5.3.3 字符数组的初始化 5.3.4 字符串的输出 5.3.5 字符串的输入 习题第6章 函数 6.1 函数的定义 6.1.1 函数定义的一般形式 6.1.2 有关说明 6.2 函数的说明和调用 6.2.1 调用前的准备(函数的说明) 6.2.2 函数调用的格式 6.2.3 函数参数特点 6.2.4 函数调用机制 6.2.5 默认参数值 6.3 内联函数 6.3.1 函数调用的利弊 6.3.2 内联函数的语法格式 6.3.3 使用内联函数应该注意的 6.4 函数重载 6.5 递归函数 6.6 标识符的作用域 6.6.1 作用域规则 6.6.2 作用域的种类 6.7 变量的存储类 6.7.1 自动变量 6.7.2 寄存器变量 6.7.3 外部变量 6.7.4 静态变量 6.8 函数的存储类 6.8.1 内部函数 6.8.2 外部函数 习题第7章 类和对象 7.1 面向对象程序设计概述 7.2 类的定义 7.2.1 类的概念 7.2.2 类的定义 7.2.3 类成员的访问权限 7.3 对象的定义及对象成员的使用 7.3.1 对象的定义 7.3.2 对象成员的表示方法 7.4 对象的初始化 7.4.1 简单构造函数和析构函数 7.4.2 带参数的构造函数 7.4.3 缺省构造函数与缺省析构函数 7.4.4 拷贝构造函数 7.5 成员函数的特性 7.5.1 内联函数与外联函数 7.5.2 重栽性 7.5.3 设置函数参数的缺省值 7.6 对象数组与对象指针数组 7.6.1 对象数组 7.6.2 对象指针数组 7.6.3 带参数的main()函数 7.7 对象指针 7.7.1 对象指针与指向函数的指针 7.7.2 指向类成员的指针 7.7.3 this指针 7.7.4 对象指针和对象引用作函数参数 7.8 静态成员 7.8.1 静态成员的引入 7.8.2 静态数据成员 7.8.3 静态成员函数 7.9 常对象与对象常成员 7.9.1 常对象 7.9.2 常对象成员 7.9.3 指向对象的常指针 7.9.4 指向常对象的变量指针 7.9.5 对象的常引用 7.10 子对象与动态对象 7.10.1 子对象 7.10.2 动态对象 7.11 友元函数与友元类 7.11.1 友元函数 7.11.2 友元类 7.12 程序举例 习题第8章 继承性和派生类 8.1 基类和派生类 8.1.1 派生类的定义 8.1.2 基类成员在派生类中的访问权限 8.1.3 基类与派生类的关系 8.2 单继承 8.2.1 继承方式 8.2.2 派生类构造函数和析构函数 8.3 多继承 8.3.1 多继承的概念 8.3.2 多继承的构造函数和析构函数 8.3.3 多继承的二义性问题 8.4 虚基类 8.4.1 虚基类的引入和说明 8.4.2 含有虚基类的派生类的构造函数和析构函数 8.5 冲突、支配规则和赋值兼容规则 8.6 程序举例 习题第9章 多态性与虚函数 9.1 多态性的概念及其表现形式 9.2 运算符重载的规则与方式 9.2.1 重载运算符的规则 9.2.2 用成员函数重载运算符 9.2.3 用友元函数重载运算符 9.2.4 成员运算符函数与友元运算符函数的比较 9.3 几种典型运算符的重载 9.3.1 赋值运算符“一”的重载 9.3.2 函数调用运算符“()”的重载 9.4 类型转换 9.5 联编与虚函数 9.5.1 静态联编 9.5.2 动态联编 9.5.3 虚函数 9.6 纯虚函数和抽象类 9.6.1 纯虚函数 9.6.2 抽象类 9.7 程序举例 习题第10章 C++的输入输出流 10.1 流与流对象 10.2 标准输出流 10.2.1 使用成员函数put()输出一个字符 10.2.2 使用成员函数write()输出字符串 10.3 标准输入流 10.3.1 使用成员函数get()获取一个字符 10.3.2 使用成员函数getline()获取多个字符 10.4 输入输出的格式化 10.4.1 设置标识字 10.4.2 格式控制符 10.5 文件处理 10.5.1 文件概述 10.5.2 文件的打开与关闭 10.5.3 文本文件读写 10.5.4 二进制文件的读写 10.5.5 随机文件的读写 10.6 字符串流 10.7 程序举例 习题第11章 综合应用编程实例 11.1 排序算法及应用 11.2 日历程序的编程 11.3 C++课程设计附录A 基本ASCII字符集附录B 扩展ASCII表附录C C++保留的关键字参考文献
第1章 C++语言概述 1.1 C++语言简介 1.1.1 C语言 C语言是贝尔实验室为DEC公司开发PDP系列计算机操作系统时研制的。C语言作为Unix操作系统的开发语言而广为应用和流行。C语言具有以下特点: ①语言简洁、紧凑,使用方便、灵活。 ②运算符和数据类型丰富。 ③能直接访问物理地址、能进行位操作,具有汇编语言的某些功能。 ④生成的目标代码质量高、程序运行效率高。 ⑤具有良好的可读性和可移植性。 当然,C语言也存在其明显的局限性: ①数据类型检查机制相对较弱,这使得程序中的一些错误不能在编译阶段被发现。 ②C语言本身几乎没有支持代码重用的语言结构,因此,一个程序员精心设计的程序很难为其他程序所用。 ③当程序段规模达到一定程度时,程序员很难控制程序的复杂性。 1.1.2 C++语言 为满足管理程序的复杂性要求,1980年贝尔实验室开始对C语言进行改进和扩充,最初的成果称为“带类的C语言”。1983年正式取名为C++,在经历了不断修订后,于1994年制定了ANSI c++标准的草案,以后又经过不断完善,成为目前的C++。C++语言具有以下特点: ①C++是C的扩展,C是C++的子集,C++包括C的全部特征、属性和优点。同时,增加了对面向对象编程的完全支持。 ②与C一致,C++程序结构采用函数驱动机制实现。