您好,欢迎来到聚文网。 登录 免费注册
C++程序设计实践教程(新国标微课版)

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

  • 字数: 703
  • 出版社: 华中科技大学
  • 作者: 马光志
  • 商品条码: 9787568094825
  • 版次: 1
  • 开本: 16开
  • 页数: 420
  • 出版年份: 2023
  • 印次: 1
定价:¥59 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
内容简介
本书致力于从理论结合实战的角度介绍C++的语法、标准库以及开发环境,结合知乎网站等出现的数千个C++学习与开发问题,将面向对象的建模技术同简单的数学建模相结合,从而同时培养同学分析问题、解决问题的能力。本书的例题及习题注重趣味性,并同时与要介绍的C++概念巧妙结合,从而较好阐述了C++语法概念的使用背景,使得同学们在遇到新的类似的问题时,能够恰当的利用C++的相关概念解决问题。本教材采用的实验环境为Microsoft Visual Studio+Qt插件,该环境开发和发布的程序可以在windows、linux、android、ios、QNX、Embedded Linux等不同操作系统平台及桌面和移动等不同环境运行,利用数学建模+面向对象建模+图形用户界面三层模式。
作者简介
马光志,湖北钟祥人,博士,副教授。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语言,数据结构等。
目录
第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

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网