《面向对象的嵌入式软件开发》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:周颖颖,李洋,钱瑛编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2018
  • ISBN:9787121347436
  • 页数:380 页
图书介绍:本书从开发角度出发,以Linux或者Windows为开发平台,从初学者的角度出发,以面向对象程序设计思想为主线,结合实际项目开发需求,将隐藏在面向对象背后的关于C++抽象、封装、继承、多态等机制和知识娓娓道来,用最通俗易懂的语言讲解知识点,不仅让读者知其然,更要让读者知其所以然,最终让这些知识再反作用于编程实践,从而帮助读者写出高“质”的C++代码。全书涉及了面向对象的方方面面,具体说来,主要讨论了包括面向对象语言的特点、MySQL数据库的应用、QT基础知识入门以及项目开发过程等多个方面的话题。

第1章 面向对象概述 1

1.1 C++概述 1

1.1.1 C++的发展 1

1.1.2 为什么要学习C++ 2

1.2 面向过程和面向对象 2

第2章 C到C++的扩展 5

2.1 命名空间 5

2.1.1 什么是命名空间 5

2.1.2 命名空间的使用 6

2.1.3 命名空间完整示例代码 7

2.1.4 C++标准库和std命名空间 8

2.2 小程序“Hello World” 10

2.2.1 输出“Hello World” 10

2.2.2 C++的输入和输出(cin和cout) 10

2.3 变量定义的位置 11

2.4 register关键字的变化 12

2.5 struct的加强 13

2.6 三目运算符的加强 14

2.6.1 C与C++中三目运算符的不同 14

2.6.2 如何在C语言中实现C++的特性 14

2.7 bool类型 15

2.8 C/C++中的const 16

2.8.1 C中的const 16

2.8.2 C++中的const 17

2.8.3 const与define 18

2.9 C++中的引用 20

2.9.1 引用的概念与基本使用 20

2.9.2 引用作为函数参数 21

2.9.3 引用作为函数返回值 23

2.9.4 指针引用 24

2.9.5 常引用 26

2.9.6 引用的本质 27

2.10 C++内联函数 28

2.10.1 内联函数的概念和使用 28

2.10.2 内联函数的特点和使用限制 29

2.11 C++函数的默认参数 29

2.12 C++函数的占位参数 30

2.13 C++中的函数重载 32

2.13.1 函数重载的概念 32

2.13.2 C++函数重载与函数指针 34

2.13.3 函数重载的二义性 35

2.13.4 函数重载与const形参 35

2.14 C++的动态内存分配 37

2.14.1 new与delete的基本用法 37

2.14.2 拓展:多维数组的动态创建与释放 38

第3章 类和对象 40

3.1 面向对象编程介绍 40

3.1.1 什么是面向对象 40

3.1.2 面向对象的优点 40

3.1.3 面向对象的特点 41

3.1.4 总结 42

3.2 类和对象 43

3.2.1 类和对象的概念 43

3.2.2 类的访问控制 45

3.2.3 类的使用案例 48

3.2.4 面向对象编程实例 49

3.3 对象的构造和析构 52

3.3.1 构造函数 52

3.3.2 构造函数的重载和调用 53

3.3.3 拷贝构造函数 56

3.3.4 默认构造函数 58

3.3.5 析构函数 59

3.3.6 构造函数的参数初始化列表 60

3.3.7 对象的动态创建和释放 63

3.4 浅拷贝和深拷贝 64

3.4.1 浅拷贝问题分析 64

3.4.2 深拷贝 66

3.5 静态成员变量和静态成员函数 67

3.5.1 静态成员变量 67

3.5.2 静态成员函数 70

3.6 C++对象的内存模型 72

3.6.1 编译器对属性和方法的处理机制 72

3.6.2 this指针 74

3.6.3 const修饰成员函数 75

3.7 友元函数和友元类 76

3.7.1 友元函数 77

3.7.2 友元类 80

3.7.3 友元函数的几点说明 82

第4章 运算符重载 83

4.1 概念 83

4.1.1 什么是运算符重载 83

4.1.2 运算符重载的使用 84

4.2 运算符重载的规则 89

4.3 常用的运算符重载 91

4.3.1 前置++与后置++的重载 91

4.3.2 左移〈〈与右移〉〉操作符的重载 93

4.3.3 成员函数与友元函数重载的选择 97

4.4 赋值运算符=的重载 97

4.5 数组下标运算符[]的重载 100

4.6 函数调用运算符()的重载 103

4.7 new和delete运算符的重载 103

第5章 继承与派生 107

5.1 继承的概念及语法 107

5.1.1 类之间的关系 108

5.1.2 继承关系 108

5.1.3 继承的使用 108

5.2 派生类的访问控制 110

5.3 继承中的对象内存模型 114

5.4 派生类的构造函数和析构函数 115

5.4.1 派生类的构造函数 115

5.4.2 派生类的析构函数 117

5.4.3 继承与组合混搭情况下构造和析构调用原则 119

5.5 继承时的名字遮蔽 121

5.6 继承中的static关键字 123

5.7 继承中的类型兼容性原则 125

5.8 多继承 128

5.8.1 多继承的概念 128

5.8.2 多继承中的构造与析构 129

5.8.3 多继承导致的二义性问题 131

5.8.4 多继承时的对象内存模型 132

5.9 虚继承 135

5.9.1 虚继承与虚基类 135

5.9.2 虚继承时的构造函数 139

5.9.3 虚继承时的对象内存模型 141

第6章 多态 143

6.1 多态的概念与使用 143

6.2 虚函数详解 147

6.3 虚析构函数 149

6.4 多态的实现机制 153

6.4.1 多态原理 153

6.4.2 构造函数中调用虚函数能否实现多态 155

6.4.3 父类指针操作子类数组 157

6.5 多继承下的多态 159

6.6 虚继承下的多态 161

6.7 纯虚函数和抽象类 162

6.8 typeid运算符 165

6.9 静态绑定和动态绑定 168

第7章 模板 171

7.1 函数模板 171

7.1.1 函数模板语法 171

7.1.2 函数模板和函数重载 176

7.1.3 函数模板机制 178

7.2 类模板 179

7.2.1 单个类的类模板语法 179

7.2.2 继承中的类模板语法 182

7.2.3 类模板的使用 184

7.3 类模板中的关键字static 191

第8章 异常 193

8.1 什么是异常 193

8.2 异常的语法 194

8.3 异常类型以及多级catch 195

8.4 throw详解 197

8.5 标准库异常 199

第9章 输入/输出流 201

9.1 输入/输出流介绍 201

9.1.1 输入/输出流的理解 201

9.1.2 流的理解 202

9.1.3 为什么要引用输入/输出流 203

9.1.4 流的缓冲区 204

9.2 标准输入/输出流 205

9.2.1 标准输入/输出流对象 205

9.2.2 输出流的使用 205

9.2.3 输入流的使用 206

9.2.4 输入/输出格式化 211

9.3 文件输入/输出流 215

9.3.1 文件的打开与关闭 215

9.3.2 文件的读写 217

9.4 字符串流的读写 219

第10章 标准模板库STL 222

10.1 STL概述 222

10.1.1 STL基本概念 222

10.1.2 容器 223

10.1.3 算法 224

10.1.4 迭代器 225

10.1.5 C++标准库 225

10.2 常用容器 225

10.2.1 string 225

10.2.2 vector容器 232

10.2.3 deque容器 237

10.2.4 list容器 240

10.2.5 map容器 243

10.2.6 set容器 247

10.3 常用算法 247

10.3.1 算法概述 247

10.3.2 算法分类 247

10.3.3 算法中函数对象和谓词 250

10.3.4 预定义函数对象和谓词 255

10.3.5 函数适配器 256

第11章 C++11/14新标准 259

11.1 概述 259

11.2 实用性加强 260

11.2.1 新类型 260

11.2.2 统一初始化 260

11.2.3 nullptr与constexpr 261

11.2.4 类型推导 264

11.2.5 基于范围的for循环 266

11.2.6 强类型枚举 266

11.2.7 智能指针 268

11.2.8 右值引用:移动语义和完美转发 275

11.3 类的加强 277

11.3.1 特殊成员函数 277

11.3.2 委托构造 278

11.3.3 继承构造 278

11.3.4 虚方法管理:override和final 278

11.3.5 显示禁用默认函数 279

11.4 对模板的加强 279

11.4.1 外部模板 279

11.4.2 尖括号〈〉 280

11.4.3 模板别名using= 280

11.4.4 默认模板参数 281

11.4.5 可变参数模板 281

11.5 lambda函数 282

11.6 对标准库的加强 283

11.6.1 新增容器 283

11.6.2 包装器 284

11.6.3 正则表达式 285

11.6.4 并发编程 286

第12章 常用设计模式 289

12.1 概述 289

12.2 设计模式的基本原则 289

12.3 常用设计模式 290

12.3.1 单例模式 290

12.3.2 简单工厂模式 298

12.3.3 工厂方法模式 300

12.3.4 抽象工厂模式 302

12.3.5 建造者模式 305

12.3.6 代理模式 308

12.3.7 装饰模式 310

12.3.8 策略模式 313

12.3.9 观察者模式 315

第13章 数据库基础 320

13.1 数据库简介 320

13.1.1 MySQL简介 320

13.1.2 关系型数据库 321

13.2 MySQL安装 322

13.2.1 MySQL安装测试 323

13.2.2 MySQL服务开启与使用 324

13.3 MySQL管理 324

13.3.1 MySQL用户设置 324

13.3.2 管理MySQL的命令 327

13.4 MySQL数据类型 327

13.4.1 整型 327

13.4.2 浮点型 328

13.4.3 定点数 329

13.4.4 字符串 329

13.4.5 二进制数据 330

13.4.6 日期和时间类型 330

13.4.7 数据类型的属性 331

13.5 MySQL使用 332

13.5.1 登录MySQL 332

13.5.2 建库建表 333

13.5.3 数据增删改查 334

13.5.4 删除整个数据库 336

13.6 MySQL接口使用 336

13.6.1 MySQL中文完全参考手册 336

13.6.2 获取错误信息 337

13.6.3 连接服务器 337

13.6.4 数据查询 339

13.6.5 MySQL的事务处理 342

13.6.6 索引 343

13.7 MySQL案例 344

第14章 Qt入门 349

14.1 Qt简介 349

14.1.1 QtCreator的下载与安装 349

14.1.2 QtCreator环境介绍 350

14.2 Hello World 352

14.2.1 编写Hello World程序 352

14.2.2 添加一个按钮 356

14.2.3 Qt的信号和槽机制 356

14.2.4 程序的发布和运行 357

14.3 窗口部件 358

14.3.1 基础窗口部件QWidget 359

14.3.2 对话框Qdialog 360

14.3.3 其他窗口部件 363

14.4 布局管理 365

14.4.1 布局管理系统 365

14.4.2 设置伙伴 367

14.4.3 设置Tab键顺序 367

14.5 常用控件介绍 368

14.5.1 常用控件需要加载的头文件 368

14.5.2 控件变量定义 369

14.5.3 控件初始化 369

14.5.4 在垂直布局中加载控件 369

14.5.5 常用控件使用 370

14.6 文件、目录和输入/输出 372

14.6.1 文件和目录 372

14.6.2 文本流和数据流(QDataStream和QtextStream) 374

14.7 Qt和数据库 375

14.7.1 连接到数据库 375

14.7.2 执行SQL语句 376

14.8 Qt网络编程 376

14.8.1 Qt和TCP 377

14.8.2 Qt和UDP 378

参考文献 380