白话C++之练功 版权信息
- ISBN:9787512429307
- 条形码:9787512429307 ; 978-7-5124-2930-7
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 所属分类:>>
白话C++之练功 本书特色
《白话C 》分“练功”和“练武”两册。“练功”主讲编程基础知识、C 语言语法(含C 11、14等)及多种编程范式。具体包括:大白话讲解计算机架构、进程、内存、二进制等编程概念;手把手教复杂编程环境的安装应用;快速感受C 语言概貌及图形界面、数据库、网络、多线程等功能库;深入浅出地讲解C 语法、标准库常用组件及面向过程、基于对象、面向对象、泛型等四种编程范式的演化与对比。本书借助生活概念帮助用户理解编程,巧妙安排知识交叉,让读者不受限于常见的控制台下编程,快速感受C 编程的乐趣,提升学习动力。本书适合作为零基础C 编程学习从入门到深造的课程教材。本书也是《白话C 之练武》的学习基础。“练武”的重点内容有:标准库(STL)、准标库(boost)、图形界面库编程(wxWidgets)、数据库编程、缓存系统编程、网络库编程和多媒体游戏编程等。
白话C++之练功 内容简介
本书从什么叫做计算机的“硬件、软件”、什么叫做“程序”讲起, 并在涉及C++具体语法之前, 详细讲解内存与程序的关系, 内容包括: 启蒙 ; 准备 ; 感受 ; 基础 ; IDE-Code::Blocks语言 ; 面向对象 ; 泛型。
白话C++之练功 目录
第1章启蒙11.1开始1
1.2什么是计算机4
1.2.1“冯·诺依曼”版4
1.2.2“白话 C ”版5
1.3什么是硬件、软件6
1.4什么是程序7
1.4.1什么是指令7
1.4.2指令兼容8
1.4.3程序=指令的逻辑组合8
1.4.4程序vs软件9
1.5什么是编程语言9
1.5.1机器语言10
1.5.2机器语言的“字母”10
1.5.3二进制(基础)11
1.5.4汇编语言11
1.5.5高级语言12
1.5.6编程思维13
1.5.7从C到C 14
1.6什么是IDE15
1.7你是程序员17
1.8出发赠言19
第2章准备20
2.1基础知识20
2.1.1开源协议20
2.1.2“库”是什么20
2.1.3“库”长什么样子21
2.1.4学习哪些“库”22
2.1.5准备安装目录22
2.1.6更多支持22
2.2安装IDE——Code::Blocks23
2.2.1检查MinGW环境23
2.2.2安装Code::Blocks23
2.2.3升级Code::Blocks24
2.2.4安装MinGWw6424
2.2.5试运行25
2.2.6配置IDE26
2.3系统编译环境变量29
2.4安装wxWidgets30
2.4.1下载31
2.4.2编译31
2.4.3检查32
2.5安装boost33
2.5.1下载33
2.5.2辅助工具34
2.5.3编译34
2.5.4检查35
2.6安装MySQL35
2.6.1搞清楚“位数”36
2.6.2安装MySQL37
2.6.3安装MySQL管理客户端38
2.6.4安装MySQL 32位C语言客户端库39
2.7安装MySQL 39
2.7.1辅助工具39
2.7.2下载39
2.7.3编译39
2.7.4安装40
2.8配置Code::Blocks全局变量41
2.8.1新建全局变量集:d2school42
2.8.2全局路径变量wx42
2.8.3全局路径变量boost43
2.8.4全局路径变量mysql44
2.8.5全局路径变量mysqlpp44
第3章感受(一)45
3.1Hello
world经典版45
3.1.1向导控制台项目45
3.1.2初识代码47
3.1.3头文件48
3.1.4标准输出cout50
3.1.5名字空间51
3.1.6函数52
3.1.7主函数54
3.1.8注释55
3.2Hello
world中文版56
3.2.1“字符集”和“编码”56
3.2.2问题与解决56
3.3Hello
world函数版58
3.3.1定义函数58
3.3.2调用函数58
3.3.3重复调用59
3.3.4带参函数59
3.4Hello
world交互版61
3.4.1变量61
3.4.2常量63
3.4.3数据类型63
3.4.4定义变量64
3.4.5完成交互64
3.5Hello
world分支版65
3.5.1流程控制ifelse66
3.5.2修改Hello函数——区别对待66
3.5.3多级ifelse67
3.5.4常见关系、逻辑操作符67
3.6Hello
world循环版68
3.6.1流程控制while68
3.6.2修改main函数——反复操作69
3.7Hello
Object生死版70
3.7.1定义对象类型71
3.7.2创建对象72
3.7.3构造函数73
3.7.4析构函数74
3.7.5对象生命周期74
3.7.6对象与内存78
3.7.7对象可见区域80
3.8Hello
Object成员版81
3.8.1成员数据84
3.8.2成员函数85
3.9Hello
Object派生版86
3.9.1使用分支86
3.9.2为何派生87
3.9.3如何派生88
3.9.4定义“美人类”88
3.9.5使用“美人类”89
3.9.6变和不变89
3.9.7派生类的生死过程90
3.10Hello
Object多态版92
3.10.1虚函数93
3.10.2虚“析构函数”95
3.10.3应用虚函数96
3.10.4多态vs.非多态99
3.11Hello
Object封装版99
3.11.1什么是封装99
3.11.2类型即封装101
3.11.3公开、保护、私有102
3.11.4class
vs struct104
3.11.5封装应用示例105
3.11.6常量成员函数109
3.12Hello
STL向量篇110
3.12.1基础111
3.12.2常用接口112
3.12.3遍历113
3.12.4实例:选美大赛管理系统115
3.13Hello
STL链表篇123
3.13.1基础124
3.13.2迭代器/iterator概念124
3.13.3常用函数1126
3.13.4常用函数2128
3.13.5常量迭代器130
3.13.6遍历list容器131
3.13.7实例:成绩管理系统1132
3.14Hello
STL算法篇137
3.14.1函数对象139
3.14.2自定义查找算法141
3.14.3泛化查找算法143
3.14.4标准库查找算法146
3.14.5标准库排序算法147
3.14.6实例:成绩管理系统2148
3.15Hello
STL文件篇160
3.15.1写文件161
3.15.2读文件163
3.15.3带格式读取164
3.15.4实例:成绩管理系统3165
第4章感受(二)170
4.1Hello
GUI基础篇170
4.1.1C::B文件默认编码170
4.1.2wxWidgets项目向导171
4.1.3界面设计172
4.1.4编译运行174
4.1.5发布程序174
4.2Hello
GUI布局篇175
4.2.1wxSmith基础175
4.2.2wxBoxSizer基础179
4.2.3布局修改实例180
4.2.4挂接事件183
4.3Hello
Internet184
4.3.1创建项目185
4.3.2界面设计185
4.3.3编写代码186
4.4Hello
Database188
4.4.1基本需求189
4.4.2准备数据189
4.4.3创建工程190
4.4.4编写代码192
第5章基础198
5.1从代码到程序198
5.1.1编译机制198
5.1.2解释机制200
5.1.3虚拟机机制201
5.2构建C 程序202
5.2.1预编译202
5.2.2编译205
5.2.3链接206
5.2.4手工构建208
5.3项目/Project209
5.3.1项目文件209
5.3.2源文件、头文件210
5.3.3使用头文件211
5.3.4库文件215
5.4进程与内存216
5.4.1什么叫进程217
5.4.2进程的内存空间217
5.4.3内存分配测试程序218
5.5内存分段220
5.5.1代码段221
5.5.2数据段和“全局数据”221
5.5.3栈内存223
5.5.4堆内存224
5.6CPU、寄存器225
5.7线程227
5.8数据与内存230
5.8.1地址、尺寸、值、类型230
5.8.2取址、取尺寸、取值、取类型233
5.8.3指针——装着地址的变量235
5.8.4堆数据与内存237
5.8.5数组数据239
5.8.6堆数组与内存240
5.8.7常量与内存245
5.8.8二维数组与内存247
5.8.9数组综合练习248
5.8.10声明、定义、实现251
5.9进制(一)258
5.9.1初识二进制258
5.9.2正整数和零259
5.9.3负整数(原码、反码、补码)259
5.9.4无符号数vs有符号数262
5.10进制(二)263
5.10.1十六进制263
5.10.2八进制265
5.10.3进制换算266
5.10.4浮点数267
第6章IDE——Code::Blocks271
6.1窗口布局271
6.1.1边栏271
6.1.2工具栏272
6.1.3布局保存273
6.2环境设置273
6.2.1常规设置/General Settings273
6.2.2视图/View274
6.2.3多页面板/Notebooks appearance274
6.2.4禁用的对话框/Disabled dialogs275
6.2.5内置游戏/C::B Games275
6.2.6自动保存/Autosave275
6.2.7环境变量/Environment variables276
6.2.8头文件自动引入/HeaderFixup configuration276
6.2.9帮助文件/Help files277
6.2.10待办事件/Todo list278
6.3编辑器设置279
6.3.1常规设置/General Settings279
6.3.2代码折叠/Folding282
6.3.3边界和光标符/Margins and caret282
6.3.4语法高亮/Syntax highlighting282
6.3.5简写词/Abbreviations282
6.3.6代码格式化工具/Source formatter283
6.3.7代码完成/Code completion284
6.3.8快捷键/Keyboard shortcuts284
6.3.9拼写检查/Spell Checker287
6.3.10wxSmith配置287
6.4编译器全局设置287
6.4.1编译器选项/Compiler settings288
6.4.2其他设置/Other settings288
6.4.3构建配置/Build options288
6.5调试器全局设置288
6.6全局路径变量289
6.7项目管理290
6.7.1项目组织290
6.7.2项目向导292
6.7.3项目文件293
6.8项目构建选项294
6.8.1公共配置和目标配置294
6.8.2项目编译器设置/Compiler Settings295
6.8.3项目链接器设置/Linker settings296
6.8.4项目搜索路径/Search directories298
6.8.5项目构建附加步骤/Prepost build steps300
6.8.6项目定制变量/Custom variables300
6.9项目属性300
6.9.1项目设置/Project settings300
6.9.2构建目标/Build targets301
6.10项目实践303
6.10.1构建动态库303
6.10.2构建静态库304
6.10.3主项目可执行程序305
6.10.4配置依赖库305
6.10.5设置项目间依赖关系306
6.11调试307
6.11.1启动调试307
6.11.2设置断点308
6.11.3单步运行309
6.11.4观察数据309
6.11.5单步进入310
6.11.6单步跳出311
6.11.7其他步进指令311
6.11.8定位错误311
6.11.9中止调试312
第7章语言313
7.1字面量313
7.1.1整数字面量314
7.1.2浮点数字面量315
7.1.3空指针字面量315
7.1.4布尔值字面量316
7.1.5字符字面量317
7.1.6字符串字面量322
7.1.7枚举字面量323
7.1.8宏替换325
7.1.9自定义字面量326
7.2类型327
7.2.1基本概念327
7.2.2整型329
7.2.3浮点型330
7.2.4字符类型331
7.2.5布尔类型332
7.2.6空类型333
7.2.7类/结构334
7.2.8枚举类型338
7.2.9类型别名344
7.3类型基础行为345
7.3.1定义345
7.3.2初始化行为348
7.3.3初始化类成员356
7.3.4复制构造行为361
7.3.5赋值行为366
7.3.6转换行为371
7.3.7转移行为380
7.3.8析构行为384
7.4变量和常量385
7.4.1变或不变385
7.4.2常量成员数据386
7.4.3常量成员函数387
7.5引用388
7.5.1定义引用390
7.5.2常量引用392
7.5.3引用传递393
7.5.4右值引用395
7.6指针401
7.6.1定义指针401
7.6.2初始化指针401
7.6.3取值与成员访问403
7.6.4释放指针404
7.6.5常量指针406
7.6.6指针的指针408
7.7数组409
7.7.1初始化数组410
7.7.2常量数组410
7.7.3数组间复制数据411
7.7.4数组退化411
7.7.5字符数组和字符串413
7.7.6多维数组415
7.7.7指针和数组417
7.7.8数组类型的别名420
7.8STL常用类型420
7.8.1std::string/wstring422
7.8.2std::list424
7.8.3std::vector426
7.8.4std::array430
7.8.5std::map433
7.8.6std::ofstream437
7.8.7std::ifstream439
7.8.8std::stringstream441
7.8.9智能指针442
7.9生存期、作用域、可见性、访问限定451
7.9.1基本概念451
7.9.2声明453
7.9.3名字空间455
7.9.4类型定义作用域469
7.10函数477
7.10.1函数作用域477
7.10.2自由函数、成员函数478
7.10.3函数声明与定义478
7.10.4函数入参479
7.10.5函数返回值489
7.10.6函数静态数据503
7.10.7递归调用504
7.10.8函数重载505
7.10.9操作符重载509
7.10.10内联函数512
7.10.11主函数514
7.10.12函数指针515
7.11Lambda函数519
7.11.1基本概念519
7.11.2入参与返回522
7.11.3捕获/capture523
7.12操作符与表达式527
7.12.1算术操作528
7.12.2基础操作529
7.12.3关系操作530
7.12.4逻辑操作531
7.12.5位操作533
7.12.6自运算536
7.12.7逗号操作符538
7.12.8取址、取值539
7.12.9成员访问540
7.12.10指针偏移计算540
7.12.11数组运算543
7.13语句与流程544
7.13.1简单语句544
7.13.2复合语句544
7.13.3if545
7.13.4switch549
7.13.5while553
7.13.6dowhile556
7.13.7for562
7.13.8break/continue567
7.13.9goto569
7.13.10综合练习570
7.14模板580
7.14.1基本概念580
7.14.2函数模板581
7.14.3显式指定模板参数582
7.14.4函数模板示例583
7.14.5类模板585
7.14.6成员函数模板587
7.14.7标准库函数模板示例588
7.14.8模板代码编译591
7.15异常593
7.15.1斧头帮的异常594
7.15.2错误VS异常594
7.15.3基本语法599
7.15.4示例:斧头帮行动异常版601
7.15.5异常再抛出603
7.15.6捕获任意类型异常606
7.15.7函数异常规格607
7.15.8函数自我捕获异常608
7.15.9构建异常“家族”610
7.15.10标准库异常类613
7.16并行流程615
7.16.1多线程615
7.16.2线程同步互斥体619
7.16.3规避死锁622
7.16.4使用守护锁623
7.16.5实例:并行累加5千万个数624
第8章面向对象634
8.1抽象634
8.1.1概念635
8.1.2难点637
8.1.3要素639
8.2封装643
8.2.1不变式645
8.2.2原则647
8.2.3“不变式”实例649
8.2.4从关系到状态655
8.2.5类型即封装656
8.2.6类型默认行为658
8.2.7this指针660
8.2.8访问控制664
8.2.9冗余保护664
8.2.10构造与资源初始化666
8.2.11析构与资源释放673
8.2.12复制行为定制675
8.2.13特定行为定制680
8.2.14定制类型转换686
8.2.15转移操作689
8.2.16静态成员689
8.2.17常量成员693
8.2.18嵌套类694
8.2.19友元696
8.2.20回归C的封装702
8.2.21进阶思考709
8.3派生735
8.3.1语法基础738
8.3.2受保护的741
8.3.3派生方式744
8.3.4派生类的构造746
8.3.5派生类的析构750
8.3.6多重派生751
8.3.7派生类与作用域755
8.4基于对象例程759
8.4.1INI文件简介760
8.4.2面向过程的设计761
8.4.3基于对象的设计767
8.4.4复用实现的派生775
8.5多态779
8.5.1“什么”和“为什么”779
8.5.2接口约定782
8.5.3虚函数785
8.5.4“多态”实例786
8.6OO设计原则792
8.6.1isa关系792
8.6.2抽象、抽象、再抽象795
8.6.3高内聚低耦合797
8.6.4明确数据边界800
8.6.5强化数据不变性803
8.6.6层次与模块808
8.6.7框架型基类809
8.7综合练习815
8.7.1工资发放练习815
8.7.2射击游戏的需求815
8.7.3小小进销存的需求817
第9章泛型820
9.1泛型概念820
9.2基础回顾820
9.2.1函数模板820
9.2.2类模板822
9.2.3成员函数模板823
9.3模板实例化825
9.3.1只帮一次忙825
9.3.2潜在匹配条件828
9.3.3显式指定类型829
9.3.4类模板实例化831
9.3.5模板内符号身份确定832
9.3.6非类型模板参数835
9.3.7模板参数默认值838
9.4泛型应用实例838
9.4.1CStyle类型转换模板838
9.4.2Pair839
9.4.3AutoPtr842
9.4.4RangeArray849
9.4.5链表结构856
9.5泛型特化872
9.5.1函数模板特化872
9.5.2类模板特化基础876
9.5.3局部特化的花样878
9.5.4全特化880
参考文献881
展开全部
白话C++之练功 作者简介
庄严,笔名南郁;20年IT从业经历,从一线研发人员到企业副总工、技术总监。虽然不同岗位有不同职责,但从未放弃过编程。编写过嵌入式、字处理软件、语言解释器、手机应用、大型分布式网络服务和互联网商城等软件系统。现为程知信息公司创始人,致力于将自身的技术、学习过程、成长历程、对内对外的技术培训、大学院校培训课程以及常年参与技术员面试的心得体会、经验教训形成相关课程。