‹  返回课程

《白话C++ 练功篇》目录

课文
阅读量:619
技术范畴
《白话C++》纸质书的目录内容基础上,增加各章节内容附加说明,以及章节页码数比例说明。
课前导言
想成为一名程序员,想学会一门编程语言,基本不能仅仅只学语言本身。
《白话C++ 练功篇》目录
目录+内容分析

先看一眼章节占比图:

白话C++"练功篇"章节页数比例图

由图可知:

  1. 本书(上册,即练功篇)最大一块的学习内容是第7章“语言”,即C++语言的语法、语义、逻辑表达等。它让你从什么都不会到会写程序解决绝大多数问题。
  2. 第2是第8章“面向对象”。它让你在面对更复杂、庞大的问题,并且往往存在多人共同合作编程时,有一个更好的的代码组织团队分工。
  3. 第3是第3章“感受(一)”。这是一个让你以快速的、高效地全面了解C++语言的“速成篇”,学完这章,你就将是在脑海中已经建立有待学知识的“整张地图”的情况进行更加深入的探索;而不是一直在盲人摸象,摸到最后才知道整体是什么。
  4. 第4是第5章“基础”。学编程语言,有计算机基础知识和没有,效率与效果天差地别。
  5. 第5是第9章“泛型”。初学者一定要避免过早掉入泛型的实现细节,在对基本原理与概念理解之后,泛型重点在使用!泛型重点在使用!泛型重点在使用!

第1章启蒙

我们花近20页的篇幅,以大白话的形式向您讲解这个行业最最最基础的一些概念:计算机、硬件、软件 、指令、程序、编程语言……我们还描述一个程序员大概的,应该是一个什么样子的人……如果这些内容你听得懂,并且不觉乏味,甚至觉得有趣……如果你觉得自己可以成为“那种人”。那么,我们认为你很适合学习编程,特别是适合学习C++编程。

如果不是呢?也不要紧,也许、应该、我想、大概可能就是我们写错了而已。

“你愿意成为一名程序吗?”

“愿意。”

1.1 开始-1

1.2 什么是计算机-4

1.3 什么是硬件、软件-6

1.4 什么是程序-7

1.5 什么是编程语言-9

1.6 什么是IDE1-5

1.7 你是程序员-17

1.8 出发赠言-19

第2章准备

“你适合当程序员”跟“你能扛过去真正成为一名程序员”是两件不同的事。

如果说第一章的20页你可以喝着咖啡,听着音乐轻轻松松看完的话,那么《准备》章的20页,大概率会让你剥下一层皮——如果你做事缺乏耐心和细心的话。 不过也不用太担忧,第2学堂网站已在提供该章节中各个开发包、软件工具的手把手安装视频配套课程

前面两道门槛:不耐烦和粗心大意。

2.1 基础知识-20

2.2 安装IDE——Code::Blocks-23

2.3 系统编译环境变量-29

2.4 安装wxWidgets-30

2.5 安装boost-33

2.6 安装MySQL-35

2.7 安装MySQL++-39

2.8 配置Code::Blocks全局变量-41

第3章-感受(一)

从“Hello world”到“Hello Object”再到“Hello STL”——本章你将快速但又不失一定深度的学习C++语言最主要三大知识群:基本语言、面向过程、泛形(模板)编程。并且彼此之间衔接得当。所以,千万不要小看 “Hello” 系列课程的的力量,学完本章,你的C++技能可能已经比那些学不得法的人要厉害得多。

Hello world!

3.1 Hello world经典版-45

3.2 Hello world中文版-56

3.3 Hello world函数版-58

3.4 Hello world交互版-61

3.5 Hello world分支版-65

3.6 Hello world循环版-68

3.7 Hello Object生死版-70

3.8 Hello Object成员版-81

3.9 Hello Object派生版-86

3.10 Hello Object多态版-92

3.11 Hello Object封装版-99

3.12 Hello STL向量篇-110

3.13 Hello STL链表篇-123

3.14 Hello STL算法篇-137

3.15 Hello STL文件篇-160

第4章-感受(二)

在让学生一头扎入C++语言的语法知识点海洋之前,要让他抱有强烈的求生欲望,否则他很容易放弃,死在深海……《白话C++》在第4章就让你感受C++可以:

  • 写漂亮的图形用户界面(GUI)——这是C++的历史强项;
  • 可以连接网络——99%的程序都需要联网了吧?
  • 可以连接数据库——80%的程序,都是基于数据库的程序!

这当然只是C++强大功能的极小的一部分,但我们不能一边夸C++强大,一边却只让学习者成天埋在黑乎乎的“控制台”或“终端”窗口写一些玩具程序……

我们一头扎入C++语法在大洋深处,不远的海岸线,水面倒映着一幢幢建筑。每一座建筑的某面墙上,都镌刻着“C++ Inside”。

4.1 Hello GUI基础篇-170

4.2 Hello GUI布局篇-175

4.3 Hello Internet-184

4.4 Hello Database-188

第5章-基础

有些花儿,要离得远些,才能嗅得到它的暗香;有些知识,要历经多年,才能感受到它的力量。

奠定你的编程技能大厦的根基,把你从众多浮萍一般的无退程序员当中区分出来的关键知识。举个最简单的实例:

  1. 因为:你不理CPU、不理寄存器、甚至不理内存这些概念;
  2. 所以:你不懂原来一份数据会生存在多个物理空间;
  3. 结果:你难于理解并发时的某些访问冲突。

5.1 从代码到程序-198

5.2 构建C++程序-202

5.3 项目/Project-209

5.4 进程与内存-216

5.5 内存分段-220

5.6 CPU、寄存器-225

5.7 线程-227

5.8 数据与内存-230

5.9 进制(一)-258

5.10 进制(二)-263

第6章IDE——Code::Blocks

IDE,不就是写代码的软件吗?听说它不重要,确实它也不重要——但这些都是对高手说的。马云还说钱不重要呢……我见过很多学生逻辑思维不错,很适合学习编程,但他们的程序员学习之旅没有死在繁琐的语法前面,也没有死在复杂的逻辑组织下,却早早死在折腾写代码的工具上面。

工欲善其事,必先利其器。

6.1 窗口布局-271

6.2 环境设置-273

6.3 编辑器设置-279

6.4 编译器全局设置-287

6.5 调试器全局设置-288

6.6 全局路径变量-289

6.7 项目管理-290

6.8 项目构建选项-294

6.9 项目属性-300

6.10 项目实践-303

6.11 调试-307

第7章-语言

语言最重要,语言最不重要,语言最简单,语言最难学……其实,语言之于编程技能的作用,就有如青春期之于人的一生的作用……认真思考问题并回答我,如果可能,你愿意在12岁生日之后,直接跳到30岁吗?或者,我们换一个角度思考:既然青春期叛逆、冲动、不成熟、甚至容易干许多荒唐事……所以青春期对于人的一生,毫无作用吗?

请一定一定努力学好语言,否则未来总有一天你会变成一个充满后悔的中年人:别人的青春期活力四射,我的青春期竟然是一张白纸!

每个人都有青春期。青春好像很重要,也好像不重要。

7.1 字面量-313

7.2 类型-327

7.3 类型基础行为-345

7.4 变量和常量-385

7.5 引用-388

7.6 指针-401

7.7 数组-409

7.8 STL常用类型-420

7.9 生存期、作用域、可见性、访问限定-451

7.10 函数-477

7.11 Lambda函数-519

7.12 操作符与表达式-527

7.13 语句与流程-544

7.14 模板-580

7.15 异常-593

7.16 并行流程615

第8章-面向对象

本章适合心理年龄30岁以上的人学习。最好有谈过几段恋爱,被人抛弃过,也抛弃过人,得意过,也失意过,如果还发过财也破过产,那就更好了……

面向对象的思想,最核心的精髓,无非两个字:妥协。可惜太多人一生都读不懂这两字。

从繁冗处学,向简易处用。

8.1 抽象-634

8.2 封装-643

8.3 派生-735

8.4 基于对象例程-759

8.5 多态-779

8.6 OO设计原则-792

8.7 综合练习-815

第9章-泛型

整本书都快完了,815页了!你已经能熟练地写好多复杂的C++代码了,你对面向对象的理解很可能比别人要深刻得多……可严格地说,你还没有经历过真正的C++程序员之考验。甚至,我们现在非常担心的一件事,就是你会不会因为第8章的修习而变成一名沉迷于面向对象的“原教旨主义”者?千万别!编程只是一种工具,甚至连一门手艺都算不上,面向过程也好,基于对象也好,面向对象也好,泛型也好,甚至命令式编程或函数式编程之间, 只是工具不同,无关任何门派之争,更谈不上信仰。

如果有人来说:“相信我,只要一门语言,一种纯正的某某思路,可以美好地解决所有问题……”。请唾弃他,就像唾弃向你兜售包治百病的药的SB一样。毕竟,我们是成年人了。

让 C++如此 C++。

9.1 泛型概念-820

9.2 基础回顾-820

9.3 模板实例化-825

9.4 泛型应用实例-838

9.5 泛型特化-872

参考文献-881

[1] Bjarne Stroustrup, C++程序设计语言(特别版) [M]. 裘宗燕,译. 北京: 机械工业出版社,2010.

[2] Bjarne Stroustrup, C++语言的设计和演化(影印版) [M]. 北京: 机械工业出版社, 2002.

[3] Stanley B.Lippman, Josée Lajoie, Barbara E.Moo, C++ Primer 中文版(第4版) [M]. 李师贤,蒋爱军, 梅晓勇, 林瑛, 译. 北京: 人民邮电出版社, 2006.

[4] Nicolai M. Josuttis, C++标准程序库 [M]. 侯捷, 孟岩, 译. 武汉: 华中科技大学出版社, 2002.

[5] Nicolai M. Josuttis C++标准库 (第2版) [M]. 侯捷, 译. 北京: 电子工业出版社, 2015.

[6] Michael Wong, IBM XL编译器中国开发团队, 深入理解C++11 [M]. 北京: 机械工业出版社, 2013.

[7] Scott Meyers, Effective Modern C++ (影印版) [M]. 南京: 东南大学出版社, 2015.

[8] Scott Meyers, Effective C++中文版 (第二版) [M]. 侯捷, 译. 武汉: 华中科技大学出版社, 2001.

[9] Scott Meyers, More Effective C++ 中文版 [M]. 侯捷, 译. 北京: 中国电力出版社, 2003.

[10] Matthew Wilson, Imperfect C++ 中文版 [M]. 荣耀, 刘未鹏, 译. 北京: 人民邮电出版社, 2006.

[11] 罗剑锋, Boost 程序库完全开发指南 [M]. 北京: 电子工业出版社, 2013.

[12] F.Alexander Allain, C++程序设计现代方法 [M]. 赵守彬, 陈园军, 马兴旺, 译. 北京: 人民邮电出版社, 2014.

[13] Steve McConnell, 代码大全 (第2版) [M]. 金戈, 汤凌, 陈硕, 张菲, 译. 北京: 电子工业出版社, 2006.

[14] 唐峻, 李淳, C/C++常用算法手册 [M]. 北京: 中国铁道出版社, 2014.

[15] David V, Nicolaj MJ, Douglas G. C++ Templates: The Complete Guide [M]. 2版. 美国:Addison-Wesley Professional,2007.

[16] Scott M. Effective Modern C++ 中文版[M]。高博,译. 北京:中国电力出版社 2018.

课后补充
如果您喜欢目录里的内容,欢迎购买纸质书(京东、当当、天猫等平台,搜索“白话C++”)。