
《普通高等教育"十二五"规划教材:C++程序设计(第2版)》以程序设计零基础为起点,全面介绍包括面向过程和面向对象的C++程序设计方法。全书共10章,包括C++基础知识、程序控制结构、函数与编译预处理、数组与指针、自定义数据类型、类与对象、重载与模板、继承与派生、多态性与虚函数、输入输出流。各章节内容由浅入深、相互衔接、前后呼应、循序渐进。
为了提高读者对程序设计思想方法的理解,《普通高等教育"十二五"规划教材:C++程序设计(第2版)》将程序设计语言模型与人类自然语言模型相比较,让读者对程序设计语言模型及其内容的理解有了完整的参照对象。全书各章节选用大量程序设计经典实例来讲解基本概念和程序设计方法,同时配有大量习题供读者练习。《普通高等教育"十二五"规划教材:C++程序设计(第2版)》的配套教材提供了本课程的实践内容、上机指导及习题参考答案。
编辑推荐
《普通高等教育"十二五"规划教材:C++程序设计(第2版)》语言表达严谨,文字流畅,内容通俗易懂、重点突出、实例丰富。适合作为高等院校各专业程序设计课程的教材,还适合作为广大计算机爱好者的自学参考用书。 目录
前言
第1章 C++基础知识
1.1 程序设计语言的基本概念
1.2 C++程序的基本结构
1.2.1 C++程序结构
1.2.2 C++程序的书写格式
1.3 一个应用程序的开发过程
1.3.1 Visual C++6.0开发环境
1.3.2 一个应用程序的开发过程
1.4 C++的词法规则
1.4.1 C++的字符集组成
1.4.2 C++的单词及其构词规则
1.5 C++基本数据类型
1.6 常量与变量
1.6.1 常量
1.6.2 变量
1.7 运算符与表达式
1.7.1 算术运算符与算术表达式
1.7.2 关系运算符与关系表达式
1.7.3 逻辑运算符与逻辑表达式
1.7.4 位运算符与位运算表达式
1.7.5 赋值运算符与赋值表达式
1.7.6 三目运算符与三目条件表达式
1.7.7 逗号运算符与逗号表达式
1.7.8 指针运算
1.7.9 运算符的优先级和结合性
1.7.10 类型转换
习题1
第2章 程序控制结构
2.1 顺序结构
2.1.1 定义语句
2.1.2 表达式语句
2.1.3 复合语句
2.1.4 空语句
2.1.5 基本输入输出
2.2 选择结构
2.2.1 if语句
2.2.2 switch语句
2.3 循环结构
2.3.1 while语句
2.3.2 do…while语句
2.3.3 for语句
2.3.4 多重循环
2.4 控制转向语句
2.4.1 break语句
2.4.2 continue语句
2.4.3 goto语句
2.5 程序实例
习题2
第3章 函数与编译预处理
3.1 函数的概念
3.2 函数的定义与调用
3.2.1 函数的定义
3.2.2 函数的声明
3.2.3 函数的返回值
3.2.4 函数的调用
3.3 函数的参数传递
3.3.1 参数的值传递
3.3.2 参数的地址传递
3.3.3 带默认值的参数
3.4 函数的嵌套调用与递归调用
3.4.1 函数的嵌套调用
3.4.2 函数的递归调用
3.5 内置函数
3.6 变量和函数的属性
3.6.1 变量的作用域
3.6.2 变量的生存期
3.6.3 内部函数和外部函数
3.7 编译预处理
3.7.1 宏定义
3.7.2 文件包含
3.7.3 条件编译
习题3
第4章 数组与指针
4.1 数组及其应用
4.1.1 数组的概念
4.1.2 一维数组
4.1.3 二维数组
4.1.4 数组作为函数的参数
4.2 指针及其应用
4.2.1 指针的概念
4.2.2 指针变量的定义及初始化
4.2.3 指针的运算
4.2.4 指针作函数参数
4.2.5 返回指针值的函数
4.2.6 指向函数的指针
4.3 指针与数组
4.3.1 指针与一维数组
4.3.2 一维数组名和指针作函数参数的进一步讨论
4.3.3 指针与二维数组
4.4 字符串
4.4.1 字符串的概念
4.4.2 字符串的存储表示法
4.4.3 字符串的输入与输出
4.4.4 字符串处理处理函数
4.4.5 字符串的简单应用举例
4.5 指针数组与多级指针
4.5.1 指针数组
4.5.2 多级指针
4.5.3 带形参的main函数
4.6 引用
4.6.1 变量的引用
4.6.2 引用作函数参数
4.6.3 引用作函数返回值
习题4
第5章 自定义数据类型
5.1 结构体类型
5.1.1 结构体类型的定义
5.1.2 结构体变量的定义
5.1.3 结构体变量的引用与初始化
5.1.4 结构体数组
5.1.5 结构体与函数
5.1.6 链表
5.2 共用体类型
5.2.1 共用体类型与变量的定义
5.2.2 共用体变量的引用
5.2.3 共用体与结构体的联合使用
5.3 枚举类型
5.4 自定义类型
思考与扩充
5.5 位段结构
习题5
第6章 类与对象
6.1 面向对象程序设计的基本概念
6.2 类与对象的定义
6.2.1 C++面向对象程序的结构
6.2.2 类的定义
6.2.3 对象的定义与使用
6.2.4 类与结构体的区别
6.3 对象的初始化
6.3.1 构造函数
6.3.2 析构函数
6.3.3 复制构造函数
6.4 对象数组与对象指针
6.4.1 对象数组
6.4.2 对象指针
6.4.3 指向类成员的指针
6.4.4 this指针
6.5 友元
6.5.1 友元函数
6.5.2 友元类
6.6 类成员的共享与保护
6.6.1 静态成员
6.6.2 常对象和常成员
6.7 程序实例
习题6
第7章 重载与模板
7.1 重载
7.1.1 函数重载
7.1.2 运算符重载
7.2 模板
7.2.1 函数模板
7.2.2 类模板
7.3 应用实例
习题7
第8章 继承和派生
8.1 继承和派生的概念
8.1.1 基类与派生类
8.1.2 继承与派生的作用
8.1.3 派生类的声明
8.2 派生类成员的访问控制
8.2.1 派生类成员访问控制简介
8.2.2 private、protected与public类成员
8.2.3 三种派生方式的定义
8.2.4 派生类成员访问控制规则
8.3 派生类的构造函数和析构函数
8.3.1 派生类的构造函数和析构函数的声明
8.3.2 派生类的构造函数和析构函数的构造规则
8.3.3 派生类的构造函数和析构函数的调用顺序
8.4 多重继承
8.4.1 多重继承的声明
8.4.2 多重继承的几点说明
8.4.3 虚基类
8.5 基类和派生类的转换
8.5.1 什么是基类和派生类的转换
8.5.2 基类与派生类的转换方法
8.6 继承与组合
习题8
第9章 多态性与虚函数
9.1 多态性的概念
9.1.1 编译时的多态性
9.1.2 运行时的多态性
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
第10章 输入输出流
10.1 C++的输入输出
10.1.1 C++流的概念
10.1.2 C++流类库
10.1.3 与iostream类库有关的头文件
10.1.4 插入与提取运算符的重载
10.2 格式化输入输出
10.2.1 标准输入输出流类
10.2.2 数据输入输出成员函数
10.2.3 格式控制成员函数
10.3 文件输入输出
10.3.1 文件的概念
10.3.2 文本文件的读写
10.3.3 二进制文件的读写
10.3.4 文件的随机读写
10.4 字符串流
10.4.1 字符串流的概念
10.4.2 字符串流的输出操作
10.4.3 字符串流的输入操作
习题10
参考文献 文摘
版权页:
插图:
对一个链表的访问必须从头指针开始进行,由头指针访问第一个结点,再通过第一个结点的指针域访问第二个结点,依次进行,表尾结点最后被访问到。因此,链表具有顺序存取特性,不像数组那样具有随机存取特性,即在数组中能够根据下标任意存取一个元素。
链表能够用来存储一组同一类型的相关信息,信息可保存在每个结点的数据域中,通过结点的指针域可建立起数据之间的线性关系。对于信息需要经常进行修改,比如:插入、删除的场合,用链表实现,会使程序结构清晰,与数组相比,处理的方法也较为简便。
2.内存动态管理运算符
前面已经提及,链表结点的存储空间是程序根据需要向系统申请的。C++中提供了程序动态申请和释放内存存储块的运算符new和delete。
(1)内存空间申请。在C++中,使用运算符new来进行动态内存分配。new运算符的功能是根据指定数据类型的大小申请一块适当的动态存储区,并返回指向该动态存储空间的起始地址:若申请不成功,则会返回NULL值。
new运算符的格式如下:
new数据类型|数据类型(初始化值)|数据类型(数组元素个数)
其中,第一种格式是申请一个存储指定数据类型的值的内存空间。如:new int表示申请一个存储整数的内存单元,申请成功,则返回4个字节大小的内存空间的起始地址;new student表示申请一个存储student结构类型变量的内存空间(student是上一节中定义的结构类型)。
一般将new操作的结果赋给具有相应数据类型的指针变量。例如:
int*pi=new int;
student*ps=new student;
第二种格式是带初始化值的。如:new int(8)表示申请一个存储整型数值的空间,并将这个空间的值初始化为8。
int*pi=new int(8);
cout<<*pi;//输出8
第三种格式是动态申请数组的内存空间。如:
char*st=new char(10);
申请10个字符的数组空间,并将此空间的首地址赋给字符指针str。
(2)内存空间释放。使用new运算符动态分配给用户的存储空间,可以通过使用delete运算符重新归还给系统,若没有使用delete释放该内存区域,则只有等到整个程序运行结束才被系统重新自动回收。
delete运算符的两种格式:
delete指针名|()指针名
用“new数据类型”或“new数据类型(初始化值)”申请的内存空间,需用第一种格式的delete释放;而用“new数据类型(数组元素个数)”申请的内存空间,则必须用第二种格式“delete()指针名”来释放。| ISBN | |
|---|---|
| 出版社 | 中国水利水电出版社 |
| 作者 | 杨长兴 |
| 尺寸 | 16 |