书籍详情

从C到C++精通面向对象编程

从C到C++精通面向对象编程

作者:曾凡锋 孙晶 肖珂 李源

出版社:清华大学出版社

出版时间:2022-11-01

ISBN:9787302619550

定价:¥69.00

购买这本书可以去
内容简介
  本书结合大量实例详细介绍了C语言的编程思想和核心技术,培养读者由C程序员成长为C程序员。本书结合C实际项目开发,详解C语言的编程思想和核心技术,培养读者由C程序员成长为C程序员。 本书共分为11章,其中第1~、2章介绍C基础知识和扩充知识,第3~、4章从类和对象入手,深入剖析类的相关知识,第5~、6章分别介绍面向对象编程的继承和多态性,第7~、8章介绍运算符重载和输入/输出流,第9~、10章介绍异常处理、命名字空间和模板,第11章介绍现代C技术。每一章都会包含一些实例,通过这些实例将本章介绍的内容知识以及前面章节中介绍过的内容知识串联起来,最后的习题为读者提供了使用面向对象编程的练习。 本书既适合作为C初学者的入门书,也适合用作高等院校计算机类相关专业开设面向对象程序设计课程的教学用书。
作者简介
  曾凡锋,多年IT课程(C程序设计、面向对象程序设计、Java程序设计、网络程序设计)的教学经验,多年的编程经验,精通C/C、Java、C#的编程语言,参与多个实际项目的开发(北京网通的网络综合管理平台、安防一体化管理平台、图像视频检索系统、网络安全设备综合管理系统、视障者辅助阅读系统、软件版权登记系统、铝业生产智能服务系统等)。获得部级科技进步二等奖2次,三等奖4次。
目录
第1章  C 基础知识 1
1.1  C/C 历史 1
1.2  C 开发环境 2
1.2.1  Microsoft Visual Studio概述 2
1.2.2  Visual Studio 2019开发环境简介 3
1.2.3  创建控制台应用程序 8
1.3  C 编程入门 11
1.4  面向对象程序设计 15
1.4.1  基本概念 15
1.4.2  面向对象程序设计的特点 17
1.4.3  面向对象程序设计和面向过程程序设计的比较 18
1.4.4  面向对象的软件开发方法 18
1.5  本章小结 20
本章习题 21
第2章  C 扩充知识 22
2.1  C 标准库头文件 22
2.2  字符串类 23
2.2.1  定义字符串变量 23
2.2.2  字符串的赋值和连接 24
2.2.3  字符串的比较 24
2.2.4  字符串替换 24
2.2.5  string类的特性 24
2.3  const定义常量 26
2.4  引用和引用参数 26
2.4.1  引用 26
2.4.2  引用参数 28
2.4.3  引用的特别说明 29
2.5  函数声明和实参类型转换 29
2.6  默认实参 30
2.7  作用域和作用域运算符 31
2.8  函数重载 32
2.9  内置(内联)函数 34
2.10  使用new和delete运算符动态管理内存 35
2.11  本章小结 37
本章习题 38
第3章  类和对象 39
3.1  类和对象简介 39
3.1.1  类的声明 41
3.1.2  对象和实例化 42
3.2  成员函数的声明和定义 43
3.3  数据成员的声明及设置函数与获取函数 44
3.3.1  数据成员的声明 44
3.3.2  设置函数和获取函数 44
3.4  成员函数的存储和this指针 46
3.5  使用构造函数初始化对象 49
3.5.1  构造函数的声明和定义 49
3.5.2  默认构造函数 51
3.5.3  带默认实参的构造函数 52
3.5.4  参数初始化列表 53
3.5.5  转换构造函数 54
3.6  析构函数 55
3.7  何时调用构造函数和析构函数 57
3.8  类的可重用性 59
3.8.1  一个类对应一个独立文件 59
3.8.2  接口和实现的分离 60
3.9  C 空类说明 62
3.10  本章小结 62
本章习题 64
第4章  类的深入剖析 65
4.1  类的作用域和类成员的访问 65
4.1.1  隐藏机制 66
4.1.2  对象访问类的成员 67
4.1.3  对象指针访问类的成员 67
4.1.4  对象引用访问类的成员 67
4.1.5  类成员访问的例子 68
4.2  对象的赋值和复制 68
4.2.1  对象的赋值 68
4.2.2  对象的复制 70
4.3  const对象和const成员函数 73
4.3.1  const对象 73
4.3.2  const成员函数 73
4.3.3  mutable数据成员 75
4.3.4  const对象和const成员函数的说明 75
4.4  类作为函数参数 75
4.5  动态创建和删除对象 78
4.6  static类成员 80
4.7  友元函数和友元类 83
4.8  组合 85
4.9  本章小结 88
本章习题 89
第5章  面向对象编程之继承 91
5.1  继承 91
5.2  基类和派生类 92
5.2.1  C 继承机制 92
5.2.2  派生类的声明方式 93
5.2.3  派生类对象的构成 95
5.3  派生类成员的访问 96
5.3.1  protected成员 97
5.3.2  不同继承方式下派生类访问基类成员 99
5.3.3  多级继承的成员访问 101
5.3.4  继承下成员访问的规则 103
5.4  public、protected和private继承 103
5.5  基类和派生类的关系 105
5.5.1  替换原则 105
5.5.2  基类与派生类的转换 106
5.5.3  派生类对基类同名成员的隐藏 109
5.6  派生类的构造函数和析构函数 109
5.6.1  简单派生类的构造函数 110
5.6.2  组合方式下派生类的构造函数 111
5.6.3  多级继承时派生类的构造函数 113
5.6.4  派生类的析构函数 115
5.6.5  派生类构造函数的显式定义 116
5.7  多继承和虚基类 117
5.7.1  多继承的声明方法及派生类构造函数 117
5.7.2  多继承下基类同名成员的二义性问题 117
5.7.3  虚基类 118
5.8  本章小结 121
本章习题 122
第6章  面向对象编程之多态性 124
6.1  多态性 124
6.2  典型的多态性实例 125
6.3  虚函数和多态性 126
6.3.1  非虚函数和静态绑定 126
6.3.2  虚函数和动态绑定 128
6.3.3  基类对象调用虚函数 131
6.3.4  多态性对比 132
6.4  抽象类和纯虚函数 132
6.4.1  实例研究 132
6.4.2  抽象类 135
6.5  多态下的构造函数和析构函数 138
6.5.1  构造函数能否是虚函数 138
6.5.2  虚析构函数 138
6.5.3  构造函数和析构函数中的多态性 140
6.6  向下强制类型转换(选修) 142
6.7  多态性的底层实现机制(选修) 144
6.8  本章小结 146
本章习题 147
第7章  运算符重载 149
7.1  运算符重载的基础知识 149
7.1.1  为什么要重载运算符 150
7.1.2  运算符重载的方法 152
7.2  运算符重载的规则 152
7.3  类成员函数和全局函数重载运算符的比较 154
7.3.1  使用类成员函数重载运算符 154
7.3.2  使用全局函数重载运算符 154
7.3.3  两种重载运算符函数的区别 155
7.4  重载一元运算符 155
7.5  重载二元运算符 157
7.6  重载流插入运算符和流提取运算符 159
7.7  类型转换 161
7.7.1  类型转换运算符 162
7.7.2  转换构造函数 162
7.7.3  关键字explicit 163
7.8  重载自增和自减运算符 163
7.9  本章小结 165
本章习题 167
第8章  输入/输出流 169
8.1  流 170
8.1.1  C 流库 170
8.1.2  C 流的主要类及继承层次 171
8.2  输出流 172
8.2.1  使用成员函数put输出字符 172
8.2.2  使用成员函数write非格式化输出 173
8.3  流的格式化输出 173
8.4  输入流 176
8.4.1  使用成员函数get读入字符 176
8.4.2  使用成员函数getline读入一行字符 178
8.4.3  使用成员函数read非格式化输入 179
8.4.4  成员函数peek、putback和ignore 179
8.5  文件流和文件处理 179
8.5.1  文件和流 179
8.5.2  文件创建、打开与关闭 180
8.5.3  ASCII文件的操作 181
8.5.4  二进制文件的操作 185
8.6  本章小结 189
本章习题 190
第9章  异常处理和命名空间 191
9.1  异常处理 191
9.1.1  异常概述 191
9.1.2  异常处理机制 192
9.1.3  异常说明 195
9.1.4  构造函数、析构函数和异常处理 195
9.1.5  标准库异常类层次 195
9.2  命名空间 196
9.2.1  如何定义命名空间 197
9.2.2  如何访问命名空间的成员 197
9.2.3  标准命名空间std 198
9.2.4  命名空间的几点说明 198
9.3  本章小结 198
本章习题 199
第10章  模板 201
10.1  函数模板 202
10.1.1  函数模板的定义和使用 202
10.1.2  函数模板的进一步说明 204
10.2  类模板 206
10.2.1  类模板的定义和使用 207
10.2.2  类模板的进一步说明 209
10.3  STL介绍 210
10.3.1  容器 211
10.3.2  算法 215
10.3.3  迭代器 218
10.3.4  函数对象 219
10.3.5  适配器 220
10.3.6  内存分配器 222
10.4  本章小结 222
本章习题 223
第11章  C 11 225
11.1  C 11简介 225
11.2  C 11新特性 226
11.2.1  auto类型推断 226
11.2.2  decltype类型推断 226
11.2.3  初始化列表 227
11.2.4  Lambda表达式 227
11.2.5  连续右尖括号的改进 228
11.2.6  基于范围的for循环 228
11.2.7  可变参数模板 229
11.2.8  nullptr 230
11.2.9  右值引用 230
11.2.10  显式生成默认函数与显式删除函数 230
11.2.11  override和final 231
11.2.12  智能指针 231
11.2.13  tuple 231
11.3  C 11示例 232
11.4  本章小结 234
本章习题 234
 
猜您喜欢

读书导航