加载中...
站长技术问答精选第1辑
{{ brief.revision === 1 ? "初版" : `第${brief.revision}版` }}
技术
·
计算机软件
·
有一定编程基础的读者
课程缩略

多年来在知乎、CSDN等网站上,回答了不少编程学习者的提问,以及自己写的一些技术文章。这里选出比较好的部分,回馈本站。其中“好”的标准,指获赞较多、或被知乎编辑主动加精的文档;但也包括部分 “无人问津”但 我自认比较好的内容。

最新发布
第25节:std::enable_shared_from_this 的存在意义?
当需要在 class 内部,将 this 以 shared_ptr<T> 的方式传递时,你就需要它
第24节:为指针取别名,为何影响const属性?
其实,没事儿还是不要为指针类型取别名!
第23节:string_view 适合用做函数的返回值类型吗?
通常不用,但有一种情况下,很适合
题图

从2014年开始到现在(2023年),我在知乎上写了500多个回答。

9年多时间,才写了这么一点,显然并不高产;因为并没有当作是一件在外部平台上的账号维护的任务去看待,所以对问题也比较挑。有时收到回答邀请,但看到问题是过于基础性的问题,我不仅没回答,还会把问题给举报了,比如那些明显是找作业答案的,或者明明只需简单百度一下就能有答案的问题。

虽然不高产,但是还算是比较快地,从一个在知乎的“三无”用户,增长到有两万多个关注者;一些用户开始称我为“大佬”,以致有一阵我因为这个虚名而回答得特别勤快……当然还是很快就又“懒”了下去(其实主要原因还是因为好的问题在变少)。另外,知乎的编辑有阵子对我也挺别友好,曾经有那么大半年,基本是我回答个问题,三四个小时,就会收到编辑发来的私信,告诉我回答被加精了。当然,编辑加精也只表明了编辑的“慧眼”,很多加精的回答也换不到用户的点赞。

500个回答,以及我自己写的一些文章,多数是大多数是编程技术相关的,并且大多数是 C++ 相关的(当然,也有Java、Golang、Python 等其它语言),也有一小部分是职场或人文方面的回答,这个课程将其中的用户点赞比较多的,或者编辑加精的,但最主要得是我自己认为比较有价值的部分,发到第2学堂,算是这么多年来我在外站(主要是知乎,但也有CSDN、简书等站)笔耕的额外收获:可以回馈自己的网站。

这些文章每一篇基本都是孤立的。所涉及的编程知识也深浅不一。因此适合有一定编程基础的读者阅读,既然它们能帮助到提问者,同时获得许多阅读者的点赞、收藏,相信也能有助于本站大部分读者的编程能力提升。

包含课文
课文缩略
初学者个容易写出的乱糟糟的代码,如何改进?
{{ parseTime('2023-03-21T14:43:01+08:00') }}
课文缩略
实例:使用组合,而不是多重派生
{{ parseTime('2023-03-21T16:14:33+08:00') }}
课文缩略
编译期,编译器会打乱你写的代码次序,运行时,CPU也会乱序执行
{{ parseTime('2023-03-24T01:33:21+08:00') }}
课文缩略
函数指针让“函数”可以是一个“变量”
{{ parseTime('2023-04-03T17:51:01+08:00') }}
课文缩略
因为你没买《白话C++》啊 🤪
{{ parseTime('2023-04-03T18:16:41+08:00') }}
课文缩略
网络开发必读:“不加思锁”地在一个socket连接上并发读写?数据必乱哦
{{ parseTime('2023-04-08T11:37:57+08:00') }}
课文缩略
WebSocket 基于 TCP ,而TCP本就支持长连接
{{ parseTime('2023-04-11T02:52:00+08:00') }}
课文缩略
“面向对象”的程序应该尽量减少对“instance-of”此类功能的依赖
{{ parseTime('2023-06-06T18:17:12+08:00') }}
课文缩略
“一个函数一处return” 的做法无需强求了
{{ parseTime('2023-06-07T17:06:04+08:00') }}
课文缩略
为什么一定要有虚函数?用非虚函数不行吗?
{{ parseTime('2023-06-08T16:14:25+08:00') }}
课文缩略
聊一聊 C++中的 “Qualified” 与 “Unqualified” 名字查找
{{ parseTime('2023-07-06T21:03:57+08:00') }}
课文缩略
在编译期间取得枚举的类型与值的名字,实现运行期无成本使用
{{ parseTime('2023-07-17T18:37:12+08:00') }}
课文缩略
说人话:在C++程序中运行 java 代码
{{ parseTime('2023-07-24T18:01:56+08:00') }}
课文缩略
不懂如何用递归实现汉诺塔?看这篇就对了,好评如潮!
{{ parseTime('2023-07-30T23:10:38+08:00') }}
课文缩略
编译器怎么保证一个常量不会被程序员强行改变呢?
{{ parseTime('2023-08-24T20:58:19+08:00') }}
课文缩略
详解 assert 的使用时机,并令其在失败能带上原因说明
{{ parseTime('2023-09-28T21:48:43+08:00') }}
课文缩略
要掌握哪些C++知识点,一个初学者才比较容易成功应聘工作(包括实习机会)?
{{ parseTime('2023-10-16T22:36:41+08:00') }}
课文缩略
要看业务模型下,某个对象是否本就是单例
{{ parseTime('2023-11-07T00:52:56+08:00') }}
课文缩略
至少得先去看看 boost 现有的 171 个库,它们都是什么
{{ parseTime('2023-11-28T13:48:00+08:00') }}
课文缩略
了解编程中“继承财富”和“继承遗志”的区别
{{ parseTime('2024-01-16T20:44:47+08:00') }}
课文缩略
是抛异常?还是“二段式”构造?都错!业务逻辑才是代码设计的核心依据
{{ parseTime('2024-01-20T19:11:31+08:00') }}
课文缩略
并发之后,当然是网络!
{{ parseTime('2024-03-22T16:56:33+08:00') }}
课文缩略
通常不用,但有一种情况下,很适合
{{ parseTime('2024-04-25T18:18:02+08:00') }}
课文缩略
其实,没事儿还是不要为指针类型取别名!
{{ parseTime('2024-05-07T10:46:07+08:00') }}
课文缩略
当需要在 class 内部,将 this 以 shared_ptr<T> 的方式传递时,你就需要它
{{ parseTime('2024-05-07T11:34:03+08:00') }}