×
超值优惠券
¥50
100可用 有效期2天

全场图书通用(淘书团除外)

关闭
C++程序设计实践教程(新国标微课版)

C++程序设计实践教程(新国标微课版)

1星价 ¥50.2 (8.5折)
2星价¥50.2 定价¥59.0
暂无评论
图文详情
  • ISBN:9787568094825
  • 装帧:平装
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:432
  • 出版时间:2023-07-01
  • 条形码:9787568094825 ; 978-7-5680-9482-5

本书特色

(1)全国目前没有介绍2023年*新C 国际标准的教材。(2)内容比C  Primer等介绍2011年C 标准的教材更全面、更深入(3)注重实战性,例题和习题来自于实战开发中遇到的各种问题,能覆盖知乎网站C 数千问答的内容。(4)教材及习题配有微课视频,例题及习题同时注重趣味性,同时具备简单的数学建模和面向对象的建模。(5)采用Microsoft Visual Studio Qt插件,两者均能用于开发和发布windows、linux、andriod及ios等不同操作系统平台下的软件。

内容简介

本书致力于从理论结合实战的角度介绍C++的语法、标准库以及开发环境,结合知乎网站等出现的数千个C++学习与开发问题,将面向对象的建模技术同简单的数学建模相结合,从而同时培养同学分析问题、解决问题的能力。本书的例题及习题注重趣味性,并同时与要介绍的C++概念巧妙结合,从而较好阐述了C++语法概念的使用背景,使得同学们在遇到新的类似的问题时,能够恰当的利用C++的相关概念解决问题。本教材采用的实验环境为Microsoft Visual Studio+Qt插件,该环境开发和发布的程序可以在windows、linux、android、ios、QNX、Embedded Linux等不同操作系统平台及桌面和移动等不同环境运行,利用数学建模+面向对象建模+图形用户界面三层模式。

目录

第1章 C 引论 1

1.1 计算机的体系结构 1

1.1.1 计算机系统的体系结构 1

1.1.2 数据与机器指令的解析 3

1.2 进制及其转换和运算 5

1.2.1 计算机采用二进制的原因 5

1.2.2 C 的常用进制及其运算 6

1.3 80x86系列汇编语言 8

1.3.1 汇编语言及C 编译简介 8

1.3.2 汇编指令及C 程序编译 9

1.4 C 的发展历史及特点 13

1.4.1 C 的发展历史 14

1.4.2 C 的特点 14

1.5 语法图与程序流程图 15

1.5.1 C 的语法图 15

1.5.2 程序流程图 17

1.6 编译环境的安装与使用 18

1.6.1 编译过程及编译环境 19

1.6.2 Microsoft Visual Studio 2019的安装 19

练习题 26

第2章 类型、常量及变量 27

2.1 C 的单词 27

2.1.1 C 的字符集 27

2.1.2 C 的关键字 28

2.2 预定义类型及值域和常量 29

2.2.1 预定义类型及其数值转换 29

2.2.2 强制类型转换及类型值域 31

2.2.3 预定义类型及相关常量 33

2.3 变量及其类型解析 37

2.3.1 变量的声明和定义 38

2.3.2 指针及其类型理解 41

2.3.3 有址引用变量 49

2.3.4 无址引用变量 55

2.3.5 元素、下标及数组 57

2.4 运算符及表达式 60

2.4.1 位运算与等号运算 60

2.4.2 指针运算及其结合方向 61

2.4.3 关系运算及结果转换 62

2.5 结构与联合 64

2.5.1 结构体 64

2.5.2 联合体 66

练习题 68

第3章 语句、函数及程序设计 70

3.1 C 的语句 70

3.1.1 简单语句 70

3.1.2 转移语句 71

3.1.3 分支语句及分支预选 73

3.1.4 循环语句 76

3.1.5 break和continue语句 80

3.1.6 asm和static_assert语句 81

3.2 C 的函数 82

3.2.1 函数声明与定义 82

3.2.2 头文件与声明 84

3.2.3 函数的参数声明 86

3.2.4 函数重载 88

3.2.5 inline、constexpr及consteval函数 90

3.2.6 线程互斥及线程本地变量 94

3.3 作用域 95

3.3.1 全局作用域与文件作用域 95

3.3.2 局部作用域与块作用域 97

3.4 生命期 99

3.5 程序设计实例 101

3.5.1 栈编程实例 101

3.5.2 队列编程实例 103

3.5.3 有限自动机编程实例 105

练习题 108

第4章 C 的类 110

4.1 类的声明及定义 110

4.1.1 面向对象的基本概念 110

4.1.2 类及对象定义的实例 111

4.2 成员访问权限及突破方法 115

4.2.1 成员的访问权限 116

4.2.2 突破成员的访问权限 117

4.3 内联、匿名类及位域 118

4.3.1 函数成员的内联 118

4.3.2 无对象的静态匿名联合 119

4.3.3 局部类及位域成员 121

4.4 new和delete运算符 122

4.4.1 简单类型及单个对象内存管理 122

4.4.2 复杂类型及对象数组内存管理 124

4.5 隐含参数this 126

4.6 对象的构造与析构 128

4.6.1 构造函数及对象初始化 128

4.6.2 成员默认值及构造与析构 130

4.7 类及对象的内存布局 132

练习题 135

第5章 成员及成员指针 137

5.1 实例成员指针 137

5.1.1 实例成员指针的用法 137

5.1.2 实例成员指针的限制 139

5.2 const、volatile和mutable 140

5.2.1 const和volatile的用法 140

5.2.2 mutable实例数据成员 144

5.3 静态数据成员 146

5.3.1 静态数据成员的用法 146

5.3.2 静态数据成员的限制 149

5.4 静态函数成员 151

5.4.1 静态函数成员的访问 151

5.4.2 静态函数成员的限制 152

5.5 静态成员指针 153

5.5.1 静态成员指针的用法 153

5.5.2 多种指针的混合用法 154

5.6 联合的成员指针 155

练习题 157

第6章 继承与构造 160

6.1 单继承类 160

6.2 继承方式 162

6.2.1 继承后成员的访问权限 162

6.2.2 访问权限的修改 165

6.3 成员访问及其指针 166

6.4 构造与析构 168

6.4.1 对象构造的执行顺序 168

6.4.2 new、delete引起的构造与析构 169

6.5 父类与子类 170

6.5.1 父类及其函数调用 170

6.5.2 友元和派生类函数中的父子类关系 172

6.6 派生类的内存布局 174

练习题 175

第7章 可访问性 178

7.1 作用域运算符 178

7.1.1 面向对象的作用域 178

7.1.2 面向过程的作用域 181

7.2 名字空间 182

7.2.1 名字空间的基本用法 182

7.2.2 使用名字空间的注意事项 185

7.3 成员友元 187

7.3.1 成员友元的一般用法 188

7.3.2 互为依赖的类的友元 189

7.4 普通友元及其注意事项 190

7.4.1 普通友元的一般用法 191

7.4.2 友元使用的注意事项 193

7.5 覆盖与隐藏 195

7.5.1 覆盖与隐藏的用法 195

7.5.2 使用using避免数据成员覆盖 196

7.6 同体与异体 198

练习题 199

第8章 多态与虚函数 203

8.1 虚函数 203

8.1.1 虚函数的声明及定义 203

8.1.2 虚函数的重载及内联 205

8.2 虚析构函数 209

8.3 类的引用 210

8.3.1 类的引用变量及其析构 211

8.3.2 类的引用参数及其析构 213

8.4 抽象类 217

8.4.1 抽象类的定义及用法 217

8.4.2 抽象类的应用实例 218

8.5 虚函数友元与晚期绑定 221

8.5.1 虚函数作为友元 221

8.5.2 虚函数的晚期绑定 222

8.6 有虚函数时的内存布局 223

练习题 225

第9章 多继承与虚基类 227

9.1 多继承类 227

9.1.1 无多继承的替代方案 227

9.1.2 多继承存在的问题 228

9.2 虚基类 230

9.3 派生类成员 232

9.3.1 无虚基类时的成员同名 232

9.3.2 有虚基类时的成员同名 233

9.4 单重及多重继承的构造与析构 234

9.4.1 单继承的构造与析构 234

9.4.2 多继承的构造与析构 236

9.5 多继承类的内存布局 237

9.5.1 无虚基类时的内存布局 237

9.5.2 有虚基类时的内存布局 239

练习题 242

第10章 异常与断言 245

10.1 异常处理 245

10.1.1 抛出与捕获 245

10.1.2 异常的传播 247

10.2 捕获顺序 248

10.3 函数的异常接口 249

10.3.1 异常接口声明 250

10.3.2 noexcept接口 251

10.4 异常类型 253

10.5 异常对象的析构 254

10.5.1 通过对象指针析构 254

10.5.2 未完成对象的析构 256

10.6 断言 257

练习题 259

第11章 运算符重载 260

11.1 运算符概述 260

11.1.1 结果为左值的运算符 260

11.1.2 运算符重载的分类 261

11.1.3 成员重载与非成员重载 262

11.2 运算符参数 263

11.2.1 自增与自减的重载 264

11.2.2 重载运算符-> 265

11.2.3 单双目运算符的重载 266

11.3 赋值与调用 268

11.3.1 赋值运算符的重载 268

11.3.2 构造函数的重载 271

11.3.3 安全的编程方法 272

11.4 类型转换与内存管理 273

11.4.1 单个显式参数构造函数 274

11.4.2 强制类型转换重载函数 275

11.4.3 重载new和delete 276

11.5 重载、[]及文本运算符 278

11.5.1 重载运算符 278

11.5.2 重载[]运算符 280

11.5.3 重载文本运算符 281

11.6 运算符重载实例 282

11.6.1 符号表运算的重载实例 282

11.6.2 栈及队列运算重载实例 284

练习题 289

第12章 类型解析、转换与推导 295

12.1 隐式与显式类型转换 295

12.1.1 简单类型的隐式转换 295

12.1.2 简单类型的显式转换 297

12.1.3 简单类型的转换结果 298

12.2 cast系列类型转换 302

12.2.1 static_cast——静态转换 302

12.2.2 const_cast——只读转换 303

12.2.3 dynamic_cast——动态转换 306

12.2.4 reinterpret_cast——重释转换 310

12.3 类型转换实例 312

12.3.1 typeid获取类型标识 313

12.3.2 explicit要求显式调用 314

12.3.3 栈的类型转换实例 316

12.4 自动类型推导 318

12.4.1 auto的一般用法 319

12.4.2 auto用于函数、数组、列表和结构 320

12.4.3 表达式类型的提取decltype 322

12.5 Lambda表达式 324

12.5.1 Lambda表达式的声明 324

12.5.2 Lambda表达式的参数 327

12.5.3 准函数Lambda表达式 331

练习题 334

第13章 模板、模块、概念、协程 335

13.1 变量模板及其实例 335

13.1.1 变量模板的定义 335

13.1.2 变量模板的实例化 336

13.2 函数模板 337

13.2.1 函数模板的定义 337

13.2.2 成员函数模板的定义 339

13.2.3 可变类型参数及折叠表达式 340

13.3 函数模板实例化 343

13.3.1 函数模板强制实例化 343

13.3.2 函数模板实例特化 344

13.3.3 涉及指针的模板实例化 345

13.4 类模板及模板别名 346

13.4.1 类模板及模板别名定义 346

13.4.2 派生类类模板的定义 347

13.4.3 多类型参数的类模板 348

13.4.4 省略参数的类模板 349

13.4.5 类模板的友元及Lambda表达式 351

13.5 类模板的实例化及特化 354

13.5.1 类模板的实例化 354

13.5.2 类模板实例特化 354

13.5.3 类模板的部分特化 357

13.5.4 实例化与类型推导 359

13.5.5 类模板及实例成员指针 360

13.5.6 模板分隔符的二义性 361

13.5.7 类模板与泛型 362

13.6 模块、概念、协程 366

13.6.1 模块及分区 366

13.6.2 概念及约束 368

13.6.3 协程及编译配置 371

13.6.4 智能指针及内存回收 376

练习题 379

第14章 流及标准类库 381

14.1 流类概述 381

14.2 输出流 382

14.3 输入流 385

14.4 文件流 386

14.5 串流处理 388

14.6 函数模板format 389

14.7 标准类库的容器 390

14.8 类型特征type_traits 393

练习题 396

第15章 面向对象开发实例 397

15.1 面向对象设计概述 397

15.2 对象的静态模型 398

15.3 面向对象的分析 400

15.4 对象的设计与实现 401

15.5 骰子游戏模型设计实例 403

15.5.1 问题描述 403

15.5.2 对象模型 404

15.5.3 对象设计 405

15.6 游戏模型程序设计 408

练习题 414

参考文献 422
展开全部

作者简介

马光志,湖北钟祥人,博士,副教授。1985在大连理工大学获计算机软件学士学位,1988年在华中科技大学获计算机软件硕士学位,2009年获华中科技大学计算机软件博士学位,1997、2011年先后在美国North Illinois University、Kennesaw State University培训及访问。主要研究方向为人工智能、图像处理、深度学习,曾发表国际期刊SCI论文25篇、国际会议发表论文10篇,国内期刊会议论文30篇,出版教材5部,获得授权发明专利1项,获得6项软件著作版权。主持与参加了近30个研究开发项目,包括国家自然科学基金1项,省自然科学基金1项,国家863及973共4项,国家重大研发计划1项,中英国际合作及中加国际合作项目各1项,上海联影横向合作项目4项,以及与医学图像、医院信息、卫生监管等相关的多个研究开发项目8项。曾参加C语言至8086汇编语言编译器的研究与开发项目。获得中国医院科技创新奖1次,湖北省科技进步二等奖2次、三等奖1次。讲授的课程主要包括数据开采与知识发现、面向对象程序设计、C 程序设计、Java程序设计、汇编语言程序设计,Lisp语言,Prolog语言,数据结构等。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航