- 博客(185)
- 收藏
- 关注
原创 把设计模式用起来!(4) 用不好模式?之原理不明
(清华大学出版社 《把设计模式用起来》书稿试读)现在就用一句话回答:命令(Command)模式在让代码更好地应对未的变化这件事上,原理是什么?也是通过牺牲自己吗?工厂方法(Factory Method)呢?观察者(Obsever)呢?如果你不能张口就来,那么,从对个别设计模式的认知,还没达到知根知底的水平。
2024-09-19 18:20:22 578
原创 把设计模式用起来!(3)用不好模式?之时机不对
上一篇:《把设计模式用起来(3)——用不好的原因 之 实践不足》本篇继续讲设计模式用不好的常见原因,这是第二个:使用设计模式的时机不对。
2024-09-13 18:53:41 1246
原创 把设计模式用起来!(2)用不好模式?之实践不足
为什么看书时,感觉学会了设计模式,一要使用却又不会?今天我们讲第一个原因:工作没有逼着你用设计模式,造成你实践不足。
2024-09-05 19:55:37 977
原创 把设计模式用起来!(1)——楔
所以,当几位《白话C++》(我的另一本拙著)的读者,对书中零星提到的,自然流露的、朴素的编程思想感到兴趣,问我能不能写一本《白话设计模式》时,我是有“写本设计模式的书,让读者一看就懂”的冲动,很快想到长辈的教诲,意识到一个事实:我自己的设计模式,也不是看书学会的。应该是小学二三年级的某个午后,我搭好梯子往屋顶爬,爬到一半人梯皆倒。现在,有人问我能否写本《白话设计模式》,我又一次思索这个问题,仍然没有清晰的答案,像极了那个阳光明媚的午后,我倒在地上望向梯子,心中发懵,明明是向上爬的工具,为何会置我以死地?
2024-09-02 12:19:15 659
原创 linux下的c++开发,平时调试代码的时候是怎么调试的呢?
有些同学对 linux 开发存在非常古老的误解:以为日常开始就是在linux黑乎乎、或者绿油油、或者五颜六色的文字界面终端下敲字符……像极了电影中的黑客。如果说到调试,这下刻板的印象更加固化了,密密麻麻的满屏幕的字符……调试者盯着屏幕,鼻尖冒汗,镜头缓慢推进 ,小小的汗珠里倒映的,挤了六个字母……
2024-07-23 22:59:45 406
原创 c++中为什么push_back({1,2})可以,emplace_back({1,2})会报错?
人之所以会在这里产生这个问题,多半因为我们在语义上知道 emplace_back 最终就是要为容器插入一个 新元素,而那个元素的类型是确定的。
2024-07-23 10:06:39 694
原创 为什么要有指针和引用类型?
指针和引用当然还有别的用处,且有既有紧密关系又有重大区别。但都不是问题“为什么要有指针和引用类型”的重点了,因为本文已经讲了“为什么需要指针或引用”的一个必要条件。
2024-07-22 22:46:29 955
原创 C++感受13-Hello Object 多态版
欢迎进入面向对象编程深水区:多态。表面上看起来是一样的对象,调用表面上看起来是一样的方法,但在实际执行时,代码所展现的功能形态却不一样。
2024-07-22 17:11:31 550
原创 结合C++智能指针聊聊观察者模式
本来, std::weak_ptr 和 std::shared_ptr 天然构造一对观察者和被观察者,可是,为了支持并发安全,std::shared_ptr 带上了锁,性能代价一下子变大,于是,C++程序员只能闲着就自己搞观察者模式了……
2024-07-11 14:01:46 1140
原创 小学姐教你HarmonyOS开发-02-ArkTS语言基础
一节课快速上手基于TypeScript扩展的ArkTS语言。ArkTS是鸿蒙生态的应用开发语言,由ArkUI框架提供,以声明式开发范式来开发界面,让开发者可以更简洁、更自然的方式开发高性能应用。
2024-06-12 14:36:22 736
原创 C++之“流”-第3课-C++和C的格式化输入输出
八个实例讲解C++中setw、skipws、setfill、setprecision、dec/hex/oct、boolalpha,以及来自C++14新标的 qutoed 等输入输出操控符的功能与使用;并与C语言的输入输出(scanf、printf)在方便性和安全性方面作了直观的对比。
2024-06-07 16:34:29 991 1
原创 C++之“流”-第2课-C++和C标准输入输出同步
为什么C++和C的标准输入输出不同步时,数据会混乱?同步会带来多大性能损失?为什么说这个损失通常不用太在乎?
2024-05-27 19:08:09 1027
原创 小学姐教你HarmonyOS开发-01-环境准备&项目创建
介绍开发工具DevEco Studio的下载与安装以及环境配置。DevEco Studio提供了Windows版本和Mac版本选择,可以根据操作系统选择对应的版本进行下载(本课程以Windows为例进行操作)。
2024-05-24 08:45:00 882
原创 C++感受11-Hello Object 成员版
当一个C++程序员在设计类型时,他在想什么?1. 这一类型的对象,需要拥有哪些属性数据?2. 这一类型的对象,它将拥有哪些功能?3. 这一类型的对象,它的各个属性和功能之间,有哪些关联关系?
2024-05-21 11:38:07 923
原创 C++之“流”-第1课.上-掌握基本概念
了解流的本质是队列,懂得区分输入、输出流;理解“抽象流”和“具体流”之分,并掌握通过面向“抽象流”面程以获得代码更好的适用性。
2024-05-16 09:37:50 410
原创 使用using为指针定义别名为什么会对const属性有影响?
项目在遇到的,指针的别名会在函数签名中把顶层const变成底层const。简化了的代码大概是下面的情况。有人可以解释一下为什么么,以及如果我想继续使用指针的别名要怎么书写这个参数?唉,都是历史债。建议前四点都不看,只看最后一点“真正有用的知识”。
2024-05-07 10:32:46 892 1
原创 C++“流”风格日志系统实战-课程简介
一个能快速提升C++复杂代码设计的学习项目,一个能迅速让C++面试官会心一笑的简历项目,一个能在实际项目中使用的项目……
2024-04-23 16:51:01 187
原创 C++感受9-Hello Object 生死版•上
“恐猪”和“恐蛇”在本课只是在陪太子读书,大家自行发挥它们的生死过程的定制吧。完成这个程序,你的一只脚已经悄然,迈过了面向对象世界大门的门槛了。
2024-04-23 16:06:14 946
原创 GUI05-老板,给我菜单!
此时,为每个单选项挂接一个事件响应函数,从而在不同的函数内做出不的处理,是最简单也最常见的方法,不过,有些时候,我们还可以使用另一种惯用法:为同一组的所有单选菜单项,创建并挂接同一个事件响应函数,并于该函数中记录当前选中的是哪一项。不过,在事件响应函数中,通常我们也没有“菜单栏”对象的变量,怎么办?尽管 wxMenu 构造函数提供一个字符串入参,用以设置该菜单的标题,但通常此时仅设置为空,直到第二步,即调用 wxMenuBar 的 Append() 方法,才通过第二个入参真实设置所添加的菜单的标题。
2024-04-22 11:00:00 690
原创 C++感受8-Hello World 循环版
重点学习如何使用 while 创建循环,和如何借助 break 打破循环……有破有立。含十数个知识点:bool类型、bool字面值、定义整数、如何从控制台计入整数,整数后置自增、如何求余,逻辑 “或” 运算等。含五个例程。
2024-04-22 09:30:00 940
原创 C++感受7-Hello World 分支版
表面的是:通过多级分支流程,实现上班路上遇见女神、老板娘、普通同事的差别化问候;暗地里还要学习内存,最后顺带复习了 std::string_view 和 std::string 之间围观与被围观 的往事
2024-04-20 09:00:00 880
原创 GUI04-深入分析基于框架窗口的应用
复杂应用最常见的桌面程序,基本都使用框架式的主窗口。本节涉及:1. 常见的应用中,哪些使用了框架窗口?2. wxWidgets 项目配置详解(为将来手工写wxWigets项目配置打基础);3. 复习如何使用Code::Blocks的向导,创建一个基于框架窗口的wxWidgets项目;4. wxApp 和 wxFrame 快速了解;5. 如何修改一个wxWigets应用程序的图标;6. 框架窗口的界面组成相关代码;
2024-04-19 17:44:54 810
原创 《白话C++》上册 前言
以下为上册前言试读内容,图片为试读内容编辑时新增。(一)我在2000年开始写《白话C++》。那时候流行个人主页,就在搜狐网站上申请了一个,域名"mywlbcyl",取“没有弯路,编程摇篮”的拼音首字母,主要发表自己写的C++入门课程。然后,就走了15年的弯路。当年要有摇篮里的宝宝跟我学C++,现在都该在读大学了。现实比这更残酷,跟着我的课程学习的人,当年多数是风华正茂的小鲜肉,现在都成...
2024-04-19 17:35:36 442 1
原创 C++感受5-HelloWorld 函数版
借助 Hello (std::string_view XXX) 函数,快速向你心目中的女神问好。(本课有福利)
2024-04-17 16:30:34 332
原创 GUI03-你好,wxWidget!跨平台项目对比
使用 wxWidgets 库在 Linux 和 Windows 下实现相同的功能:在窗口上跟踪输出鼠标坐标位置。一个不错的原生与跨平台实现的对比例程,让我们有机会对二者的实现做一个对比。
2024-04-17 11:09:40 506
原创 GUI02-在窗口上跟踪并输出鼠标位置(Win32版)
(1) 响应 WM_MOUSEMOVE 消息获得鼠标位置;(2) 响应 WM_PAINT 将鼠标位置输出到窗口中;(3) 学习二者之间的关键步骤:调用 InvalidateRect() 以通知窗口重绘。
2024-04-15 18:40:34 814
原创 C++多线程并发学完后,该学什么呢?
C++在多线程学完后,可以学网络。相当于这么一个学习演进:1. 单线程、无网络的程序: 一家公司,一个员工干活 (光杆司令,个体户?);2. 多线程,无网络的程序:一家公司,招聘了几位小弟内部合作(有样子也有效率啦);3. 多线程,有网络的程序:好几家公司之间互相配合干活。
2024-03-22 17:35:15 406
原创 C++感受2-逐字逐句,深入理解C++最小例程
一篇长文,十倍榨干 "Hello World" 知识点。以 “Hello World” 例程为载体、线索,在完成 “间接名字空间限定” 写法转换到“直接名字空间限定”的过程,同时掌握函数、主函数、函数调用、级联操作、声明、类型、int、字符串类型、头文件包含、行为数据、流输出操作符、标准输出流对象、标准库名字空间、ADL等20多个C++知识点,打好基础,让后续的学习事半功倍。
2024-03-12 17:20:58 720
原创 C++感受1-打开浏览器,线上玩转C++
介绍了五款在线编译、编译、运行的C++线上环境。并选择其中的 “在线GDB” 网站动手编写、运行第一个C++程序 “Hello World”,同时和线下IDE进行对比。
2024-03-12 16:42:07 503
原创 GUI01-用C++在Windows桌面上打个叉❌
我们的目标是,只写一二十行代码,用 Windows自带的原生接口,强行在桌面上打个大红❌,如图:写了大半年C++,天天和“黑乎乎” 的小窗口你侬我侬?赶紧来打开一扇“Windows”,从窗口跳进全新的GUI世界吧。
2023-07-20 08:00:00 260
原创 静态反射C++枚举名字的超简方案——C++闲得慌系列之(一)
虽说支持传递非类型参数 是C++模板一项“令人发指”的特性,但又有细分:在当前主流的 C++1x 标准下,它是翘兰花指,而在C++20,这项特性是疯狂到赤裸裸“竖中指”的地步——C++1x (11、14、17)传的数据只能是简单类型,而C++20以后,竟然可以传用户自定久的struct/class类型的数据了……另外,请注意,这里使用了 gcc 的一处扩展:gcc 提供了静态版的 strlen()库函数 ,即:给出一个编译期的C风格(以零结束)的字符串,就能在编译期直接“数”出来这个字符串的长度。
2023-07-17 14:50:56 538 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人