自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

第2学堂-专栏

www.d2school.com

  • 博客(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

原创 GUI06-简简单单,状态栏

简简单单学会创建及使用 wxWidgets 图形界面库的状态栏。

2024-07-26 18:39:36 580

原创 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

原创 C++感受12-Hello Object 派生版

一个原则:不变的功能,希望直接复用原有代码;变化的功能,希望在分开的代码里实现。

2024-06-30 15:29:07 660

原创 小学姐教你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++之“流”-第1课.下:实战:最简日志系统的演化

五个版本的 C++ “流”式日志系统的演化,零基础也能轻松跟进!

2024-05-22 09:30:00 269

原创 C++感受11-Hello Object 成员版

当一个C++程序员在设计类型时,他在想什么?1. 这一类型的对象,需要拥有哪些属性数据?2. 这一类型的对象,它将拥有哪些功能?3. 这一类型的对象,它的各个属性和功能之间,有哪些关联关系?

2024-05-21 11:38:07 923

原创 C++之“流”-第1课.上-掌握基本概念

了解流的本质是队列,懂得区分输入、输出流;理解“抽象流”和“具体流”之分,并掌握通过面向“抽象流”面程以获得代码更好的适用性。

2024-05-16 09:37:50 410

原创 C++函数模板可变参数如何一次性解包?

快速了解C++17的模板参数(parameter pack)如何一次性解包

2024-05-10 12:25:33 382

原创 使用using为指针定义别名为什么会对const属性有影响?

项目在遇到的,指针的别名会在函数签名中把顶层const变成底层const。简化了的代码大概是下面的情况。有人可以解释一下为什么么,以及如果我想继续使用指针的别名要怎么书写这个参数?唉,都是历史债。建议前四点都不看,只看最后一点“真正有用的知识”。

2024-05-07 10:32:46 892 1

原创 std::enable_shared_from_this 有什么意义?

为什么要有 std::enable_shared_from_this?

2024-04-30 17:08:07 879

原创 C++感受10-Hello Object 生死版•下

搞懂以下三个重要知识点:1. 对象生命周期2. 对象内存模型3. 对象的可见性

2024-04-25 14:31:47 1077

原创 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++感受6-Hello World 交互版

先学变量,再学人机交互……

2024-04-19 16:59:50 1263

原创 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++感受4-HelloWorld中文版——认识编码

及时了解“编码”对编写代码的影响,是中国程序员越早知道越好的知识点。

2024-04-11 10:01:50 507

原创 C++感受3-做一个“会”犯错误的程序员

一个优秀的学习者,必然是一个会犯错误,敢会错误的学习者;并用有错就能改,没错,就要学会创造错误?

2024-03-31 10:00:00 238

原创 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关注的人

提示
确定要删除当前文章?
取消 删除