《C++语言程序设计教程(第二版)》是2014年清华大学出版社出版的图书,作者是沈显军、杨进才。
C++语言是目前最为流行的程序设计语言,它既支持面向过程的结构化程序设计,也支持基于对象的面向对象程序设计。本书依据ANSI C++标准,从面向过程的编程到面向对象的编程方法展开,形成一条自然流畅的主线,同时两个部分又自成体系,以满足不同基础与需求的学习者。内容包括: C++编程简介、数据类型与表达式、控制结构、函数、构造数据类型、C++程序的结构、类与对象、继承与派生、多态性、类模板、STL、输入输出与文件系统、string类字符串、异常处理。
本书的作者都是长期在高校从事计算机专业教学与科研的一线教师,有丰富的编程与教学经验,对编程中常用的以及在学习过程中容易出错的知识点进行了详尽的讲解。书中文字流畅、通俗简洁,概念清晰、循序渐进,例题实用、习题题型多样。 [1] 本书适用于高等院校信息类专业的学生使用。
目录
- 第1章C++编程简介
- 1.1计算机程序设计语言
- 1.1.1机器语言与汇编语言
- 1.1.2高级程序设计语言
- 1.1.3面向对象的程序设计语言
- 1.2面向对象的软件开发
- 1.2.1面向对象方法概述
- 1.2.2面向对象的基本特征
- 1.2.3面向对象的软件开发过程
- 1.3C++语言程序设计
- 1.3.1C++语言的产生
- 1.3.2C++语言的特点
- 1.4C++程序开发过程
- 1.5C++程序结构
- 1.5.1一个简单的C++程序
- 1.5.2使用名字空间
- 1.5.3C++输入输出简介
- 1.6本章小结
- 习题1
- 第2章数据类型与表达式
- 2.1数据类型概述
- 2.2C++的基本数据类型
- 2.2.1字符集
- 2.2.2基本数据类型
- 2.3数值
- 2.3.1整型数
- 2.3.2浮点型数
- 2.3.3字符型数
- 2.3.4字符串
- 2.3.5布尔型数
- 2.4变量
- 2.4.1标识符与关键字
- 2.4.2变量的定义与赋初值
- 2.5常量
- 2.5.1符号常量
- 2.5.2常变量
- 2.6运算符与表达式
- 2.6.1优先级与结合性
- 2.6.2算术运算符
- 2.6.3关系运算符
- 2.6.4逻辑运算符
- 2.6.5位运算符
- 2.6.6赋值运算符
- 2.6.7++、--运算符
- 2.6.8其他运算符
- 2.6.9表达式的使用
- 2.7类型转换
- 2.7.1自动转换 [2]
- 2.7.2强制类型转换
- 2.8表达式的副作用
- 2.9本章小结
- 习题2
- 第3章控制结构
- 3.1C++语言的语句
- 3.2判断与循环
- 3.3if…else…if判断式
- 3.3.1基本的if语句
- 3.3.2完整的if语句
- 3.3.3if语句的嵌套
- 3.4switch…case判断式
- 3.5for循环
- 3.5.1for语句
- 3.5.2用for语句实现嵌套循环
- 3.6while循环
- 3.6.1while语句
- 3.6.2do…while语句
- 3.7break,continue,goto语句
- 3.7.1break语句
- 3.7.2continue语句
- 3.7.3goto语句
- 3.8本章小结
- 习题3
- 第4章函数
- 4.1函数的定义和声明
- 4.1.1函数的定义
- 4.1.2函数原型的声明
- 4.2函数的调用
- 4.2.1函数的调用形式
- 4.2.2函数调用的执行过程
- 4.2.3函数参数的按值传递
- 4.2.4嵌套调用
- 4.2.5递归调用
- 4.3内联函数
- 4.4带默认形参值的函数
- 4.5函数重载
- 4.6函数模板
- 4.7C++系统函数
- 4.8本章小结
- 习题4
- 第5章构造数据类型
- 5.1枚举类型
- 5.1.1枚举类型的定义
- 5.1.2枚举类型的使用
- 5.2数组
- 5.2.1一维数组定义与使用
- 5.2.2二维数组的定义与使用
- 5.2.3多维数组
- 5.2.4数组与函数
- 5.2.5字符数组与字符串
- 5.3指针
- 5.3.1指针的定义与使用
- 5.3.2指针与字符串
- 5.3.3指针与数组
- 5.3.4多重指针
- 5.3.5动态内存分配
- 5.3.6指针与函数
- 5.3.7指针常量与常量指针
- 5.4引用类型
- 5.4.1引用类型变量的说明及使用
- 5.4.2引用与函数
- 5.4.3常引用
- 5.5结构与联合
- 5.5.1结构
- 5.5.2联合
- 5.6本章小结
- 习题5 [3]
- 第6章C++程序的结构
- 6.1变量的类型
- 6.1.1全局变量与局部变量
- 6.1.2变量的存储类型
- 6.1.3变量在内存中的存储
- 6.2标识符的作用域与可见性
- 6.2.1函数原型作用域
- 6.2.2块作用域
- 6.2.3文件作用域
- 6.2.4可见性
- 6.3程序的文件结构与编译预处理命令
- 6.3.1文件包含# include命令
- 6.3.2不带参数的宏定义
- 6.3.3带参数的宏定义
- 6.3.4条件编译
- 6.4名字空间
- 6.5本章小结
- 习题6
- 第7章类与对象
- 7.1类与对象的概念
- 7.1.1从面向过程到面向对象
- 7.1.2类的定义
- 7.1.3对象的建立与使用
- 7.1.4成员的存取控制
- 7.2构造函数与析构函数
- 7.2.1构造函数
- 7.2.2析构函数
- 7.2.3拷贝构造函数
- 7.2.4浅拷贝与深拷贝
- 7.3对象的使用
- 7.3.1对象指针
- 7.3.2对象引用
- 7.3.3对象数组
- 7.3.4动态对象
- 7.3.5this指针
- 7.3.6组合对象
- 7.4静态成员
- 7.4.1静态数据成员
- 7.4.2静态成员函数
- 7.5友元
- 7.5.1友元函数
- 7.5.2友元类
- 7.6常对象与常成员
- 7.6.1常对象
- 7.6.2常数据成员
- 7.6.3常成员函数
- 7.7对象的内存分布
- 7.7.1对象的内存空间分配
- 7.7.2对象内存空间的释放
- 7.8本章小结
- 习题7
- 第8章继承与派生
- 8.1继承与派生的概念
- 8.1.1继承的概念
- 8.1.2派生类实现
- 8.1.3继承与组合
- 8.2继承的方式
- 8.2.1公有继承
- 8.2.2私有继承
- 8.2.3保护继承
- 8.3派生类的构造与析构
- 8.3.1派生类构造函数的定义
- 8.3.2单继承的构造与析构
- 8.4类型兼容
- 8.5多继承
- 8.5.1多继承的构造与析构
- 8.5.2二义性问题
- 8.6虚基类
- 8.6.1虚基类的定义
- 8.6.2虚基类的构造与析构
- 8.7本章小结
- 习题8
- 第9章多态性
- 9.1多态性概述
- 9.2运算符重载
- 9.2.1运算符重载机制 [4]
- 9.2.2运算符重载规则
- 9.2.3重载为类的友元函数
- 9.2.4重载为类的成员函数
- 9.2.5典型运算符重载
- 9.3虚函数
- 9.3.1静态联编与动态联编
- 9.3.2虚函数的定义与使用
- 9.3.3虚析构函数
- 9.4抽象类
- 9.4.1纯虚函数
- 9.4.2抽象类与具体类
- 9.5本章小结
- 习题9
- 第10章类模板与STL编程
- 10.1类模板的概念
- 10.1.1类模板的定义
- 10.1.2类模板的实例化
- 10.1.3默认模板参数
- 10.2类模板应用
- 10.2.1栈类模板
- 10.2.2链表类模板
- 10.3STL编程
- 10.3.1STL简介
- 10.3.2STL容器
- 10.3.3顺序容器
- 10.3.4关联容器
- 10.3.5STL算法
- 10.3.6函数对象
- 10.4本章小结
- 习题10
- 第11章C++输入输出流与文件系统
- 11.1I/O流的概念
- 11.2输出流
- 11.3流的格式控制
- 11.3.1格式控制标志
- 11.3.2格式操纵符
- 11.3.3格式控制成员函数
- 11.4输入流
- 11.5数据流的错误侦测
- 11.6文件的输入输出
- 11.6.1文件的创建
- 11.6.2文本文件的输出
- 11.6.3二进制文件输出
- 11.6.4文本文件的输入
- 11.6.5二进制文件输入
- 11.6.6文件指针的使用
- 11.7本章小结
- 习题11
- 第12章string类字符串处理
- 12.1string类对象的定义
- 12.2string类成员函数
- 12.3string类的操作符
- 12.4string类串位置指针
- 12.5string类串与C风格字符串的转化
- 12.6本章小结
- 习题12
- 第13章异常处理
- 13.1异常的概念
- 13.2C++异常处理机制
- 13.3异常处理嵌套与重抛异常
- 13.3.1异常处理嵌套
- 13.3.2重抛异常
- 13.4标准异常处理类
- 13.5本章小结
- 习题13
- 附录A数值的机内表示
- 附录BC++语言中的关键字(保留字)
- 附录C运算符优先级表
- 附录DASCII码字符集
- 附录EGB231280汉字字符集
- 附录FGBK汉字字符集
- 参考文献