发表时间:2022-03-25来源:网络
七夕,情人节。
《白话C++》下篇有一个例子项目,就是教大家如何在女友或男友,老婆或老公的电脑上事先安装一个程序。等到指定日子一到,比如(今天,七夕,或者明年的2月14日),这个程序就会在对方的电脑桌面上“盛开”出一朵玫瑰(当然也可以是别的,看你的朋友喜欢什么),还可以弹出窗口,显示一段告白。本篇题图中红色紫色盛放的玫瑰以及那个丑陋的对话框,就是实际程序运行截图。
我知道你送给你女友的电脑是苹果MacBook,没关系,《白话C++》教的程序和库,几乎都是跨平台的。这朵玫瑰用的图片界面库是,因此在MacBook上也可以盛放。
言归正传,这一篇先正经谈谈学习c++的好处——
学习C++,你这辈子大概要永远脱离不了编程技术岗位,最大的官估计也就是当个技术总监了……唉!因为C++是一门变态的上达天庭下达地狱的语言,它往下直抵计算机硬件、OS、基础运行环境、网络等底层技术,往上又能抽象出面向过程、基于对象、面向对象、泛型、函数式等等多种编程范式。C++大概是唯一1门既不放弃计算机底层具象,又要紧紧抓牢人类思维抽象的语言,同时它还是事实上的,大量计算机中间件的编写语言。所以学习c++你会慢慢成为一个上下通吃的人——公司里那个CTO基本上就是这种人,当然,也有一些公司里CTO是务虚的,那在他之下必然有一排这样看上去什么都懂的猛将。学习C++,你将永远“被失去”学习其他语言的正常时间——多数人理解这句话,以为是不是因为C++太难学了,所以学C++的人没有时间学习其它语言。这最多算是一种解释吧,更正确的解释的是:人们从不给学过C++的人太多学习其它语言的时间,特别是那些C系(基本上就是那些使用花括号的)的语言。你懂C++?那你上午看一下C#的语法,下午过来帮忙写点C#的程序?你懂C++?那Java语法对你太小儿了,来,这边人帮你搭那框架了,你过来帮忙写的Java后台?你是搞C++的?来吧,强大的PHP在等着你! 事实上想成为任何一门编程语言的高手,都需要大量的学习与实践的时间,但C系的语言(当然,C本身不是)大多源于或借鉴了C++,并且去除其中容易出错的设计,所以学会C++再去学习其它语言,技术难度门槛下降很多。学习C++,你将成为一个孤独的人。没错,C++程序就像是一位O型血的人,经常去帮助他人。他们甚至会被莫名其妙地抓去做Java虚拟机JVM的性能优化,谁让多数JVM也是C++写的呢?可是他们却很是拒绝别人的帮助。因为C++界有一个奇怪的规律:如果你不是一个C++牛人,当你加入一个C++的牛人团队,那么你不是来帮忙,你是来帮倒忙的。换句话说,在C++这个军团里,你想当伙夫养头猪煮个饭,你也得身怀扫地僧的本事,否则猪会被你养死,饭会被你烧糊。学习C++,你将活在比普通人高一个层面精神世界中。这是其它编程语言非常难以具备的功效。比如一个C程序员盯着电脑半天,会扭头说:“妈,这台电脑的内存很大。’”;而一个Java程序员盯着电脑半天,会说“妈,这台电脑用着很顺手,真是人类的好朋友啊’”。只有C++程序员盯着电脑半天,会说:“妈,在这台电脑16G的内存中,仿佛活着我的一个好朋友。” 能说出这样的话的人,不是哲学家,就是诗人,如果都不是,那就必然是C++程序员。学习C++,你将变得谦虚、低调、平和,从而广受欢迎。进入这个圈子,你会发现从来没有真正的牛人敢说自己精通C++,包括C++之父都不敢。而在圈子之外,则又有一大堆人骂到:“C++是最糟糕的语言”。想想,在身处这样的圈内文化和圈外指责中,C++程序员怎么不会自发地变得谦虚、低调而平和呢?(作为对比,有些语言长年处于“XXX是地表最强语言”的吹捧中,学习这门语言的程序员想不膨胀就得有唐僧般的定力啊)。学习C++,你多少会懂一点C。而C语言在当今这个世界……你是电,你是光,你是唯一神话(吹捧起C语言,我就来劲多了)。就这几点吧,并且都是一家之言,其实作为谦虚、低调、平和的全球C++程序员中的一小兵,我也说不出什么吹捧的话了。前一篇就说了嘛,学习编程还是兴趣为主。如果我们一门计算机语言都不会,在编程这件事上,我们就是一个饿得脸黄肌肉的人,眼前来了面条、米饭、馒头、玉米棒子,随便拿起一个吃就对了,千万不要科学地评测一番哪个食物唯生素多哪个热量多……
《白话C++ 》上册,称为“练功篇” ,重点学习一些编程所需的基础知识、包括计算机基本原理、概念、C++语法等,共九章。就像习武之人,需要身强力壮,马步扎得稳一样。
《白话C++ 》下册,称为“练武篇”。重点学习C++的一些功能库,相当于进入了C++武器库:如何访问数据库,如何写图形界面,如何访问网络、如何写游戏……身体再强壮,你也得会用手枪啊…
来看看下册都讲了些什么。

10.1. 流
输入流、输出流、输入输出流
同步C 风格标准输入输出
格式化输出
重温文件流和字符串流
重载 > 操作
友元与流重载
示例:日志流
10.2. 常用小工具
non-copyable
随机数
boost::UUID
命令行参数
boost::any
std::pair和 tuple
std::ref/cref
比较操作自动推导
10.3. 字符串处理
std::string
std::wstring
字符串格式化
string的武器库
boost::lexical_cast
10.4. 智能指针
std::auto_ptr
boost::scoped_ptr
boost::scoped_array
std::unique_ptr
std::shared_ptr
std::weak_ptr
10.5. 迭代器大观园
迭代器基本分类
迭代器辅助操作
喜欢兼职的迭代器
10.6. 常用容器
std::array
std::vector
std::deque
std::list
std::set/std::multiset
std::map/std::multimap
std::unordered_sets/maps
10.7. 特殊容器
std::vector
std::queue/priority-queue
std::stack
10.8. 常用算法
基本概念
遍历时操作
复制
逆转
排序
查找
替换
移除
10.9. 函数绑定
基本概念
std::function
std::bind
用于标准库算法
10.10. 日期与时间
C时间类型与操作
boost::timer
boost::gregorian::date
boost::ptime
boost.date_time小结
std::chrono
线程休眠
10.11. 文件系统
path类
文件系统异常
广义文件操作
文件夹特定操作
环境路径操作

11.1. GUI下I/O基础
从“控制台”说起
GUI下的输入处理
GUI下的输出处理
11.2. Windows原生GUI程序
Win32 GUI 项目
Win32 API创建一个窗口
注册“窗口类”
窗口过程函数
处理“窗口绘画”消息
处理“鼠标移动”消息
11.3. 跨平台GUI库基础
使用原生API不好吗
GUI项目例子
实例概貌分析
项目配置
11.4. 基于框架窗口的应用
主菜单
状态栏
工具栏
11.5. 基于对话框的应用
应用初始化
对话框
11.6. 事件
类“事件表”声明
静态事件表
动态绑定事件
11.7. 实例一:Windows屏幕保护程序
使用向导创建项目
配置屏保文件扩展名
清理不需要的代码
让窗口充满屏幕
让屏幕变幻颜色
让世界充满爱
这样才是屏保
待完善
11.8. 基础工具
预定义环境宏
字符串字面常量编码
字符串类
日期时间
日志机制
配置类/
11.9. 重逢“史密斯”大叔
启用wxSmith
基本操作
布局
属性设置
控件通用属性
事件设置
窗口常用属性
菜单设计
工具栏设计
图标属性
更多控件
11.10. 模态、非模态
基本概念
模态对话
非模态对话
11.11. 实例二:临时记事板
主对话框设计
“新记事”对话框设计
“记事详情”对话框设计
代码
待完善
11.12. 实例三:我的“小画家”
进化一:搭框架、滚动、坐标
进化二:更多图形、包括文字
进化三:颜色、画笔、画刷、十字形
进化四:降低画面闪烁感
进化五:列表框操作
进化六:列表框弹出菜单
进化七:画板上选中图元
进化八:支持Undo / Redo
进化九:保存文件与加载文件
进化十:支持剪贴板
进化十一:完善细节
本篇例程“小画家”程序运行载图


12.1. 基础知识
12.2. 异步
概念和示例
异步调用策略
异步过程的异常
异步等待
避免时空错乱
共享异步存根
异步绑定和任务包裹
12.3. 线程
从“异步”到“线程”
线程汇合/join
线程剥离/detach
12.4. “承诺”/promise
12.5. 并发同步
并发冲突分析
互斥
“半自动”锁
递归锁/recursive lock
尝试上锁
原子操作/atomic
条件变量/condition variable
互斥和数据结构
15.1. 开心最重要
15.2. 桌面玫瑰
……细节,略……
更多有趣应用
15.3. 俄罗斯方块
窗口设计
“形状”类设计
“游戏信息”类设计
“游戏面板”类设计
绘图相关
完整代码
15.4. SDL(上)
简介与安装
创建示例项目
初始化SDL
SDL出错信息
窗口
事件
表层
纹理
渲染器
定时器
碰撞检测
15.1. 宝岛保卫战
游戏剧情
游戏规则
战前准备
战争序幕
角色设计
吃瓜的小鱼
五毛的特效
呼啸的子弹
挨打的目标
神勇的我军
疯狂的敌军
大结局
15.2. SDL(下)
光标
音频
扩展
15.3. 作业:宝宝识物
《乐趣》篇“宝岛保卫战”运行录屏
https://www.zhihu.com/video/885529154030829568最后一章 《下一步》
就是告诉你,学过《白话C++》,你的下一步可选择的新的学习计划有哪些,对应的国人或外国人写的好书有哪些,对应的github网站上有哪些好项目,好库,好代码,好大牛值得学习。
谈什么性价比哪?学习呢,开心最重要。学得开心的人才能学得好,学得好的人才能成为大牛,成为大牛的人才能工资高,工资高的人……打住。
学习C++,走出成为大牛的关键第一步。呀,不够谦虚了。可能要引来论战呀?哈哈……今天天气真好,情人节嘛,祝各位读者开心!
第6篇 会犯错误才会进步——Hello Error!
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
粤语翻译帮app下载v1.1.1 安卓版
60.01MB |生活服务
人生笔记app官方版下载v1.19.4 安卓版
125.88MB |系统工具
萝卜笔记app下载v1.1.6 安卓版
46.29MB |生活服务
贯联商户端app下载v6.1.8 安卓版
12.54MB |商务办公
jotmo笔记app下载v2.30.0 安卓版
50.06MB |系统工具
鑫钜出行共享汽车app下载v1.5.2
44.7M |生活服务
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-02-15
2022-02-14