学懂现代C++——《Effective Modern C++》之转向现代C++

2023-09-27
阅读 6 分钟
482
现代C++中像auto、智能指针、移动语义等都是一些重大的优化特性,但也有一些像constexpr、nullptr等等这样一个小的特性。这章的内容就是这些小特性的集合。

Windows端ZLMediaKit编译与webrtc推拉流测试

2022-08-25
阅读 2 分钟
1.5k
之前编译过linux端的ZLMediaKit,做过webrtc的推拉流测试。这次编译Windows端的ZLMediaKit,也做下webrtc的推拉流测试。特此记录下编译和测试过程。特别提示下,如果不需要做webrtc测试,只要编译ZLMediaKit,则可以忽略安装libsrtp的流程。

ZLMediaKit编译与webrtc推拉流测试

2022-02-14
阅读 1 分钟
3.4k
OS版本:Ubuntu 20.04.2 LTSopenssl版本:OpenSSL 1.1.1fgcc版本:9.3.0cmake版本:3.16.3

重构,第一个案例(C++版)——运用多态取代与价格相关的条件逻辑

2020-02-23
阅读 6 分钟
1.9k
经过上一篇文章——重构,第一个案例(C++版)——分解并重组Statement()中的重构,我们的程序已经有了很大的进步了。但,我们重构的步伐并不能停歇下来。因为,很快客户就开始嘀咕起新需求了。让我们看看这次客户想要些什么。

重构,第一个案例(C++版)——分解并重组Statement()

2020-02-23
阅读 8 分钟
2.8k
在上一篇文章——重构,第一个案例(C++版)——最初的程序,我们已经实现了一个影片出租程序的最初版本。我们也分析了,这个版本的程序虽然能跑起来,没有bug。但是,明显的,程序中有一些“代码的坏味道”。为了重构它,我们首先写出了一段测试代码,方便我们重构的时候进行测试。

重构,第一个案例(C++版)——最初的程序

2020-02-23
阅读 4 分钟
2.3k
这样的总结比较抽象,这里我将写一个系列文章,主要想通过案例来让大家具体的感受一下小步重构的魅力。使用的例子也是Martin Fowler《重构》一书中第一章的案例。不过书中案例是用Java写的,这里我将其改为了C++程序。希望这样对C++程序员能更好的理解重构。

C++实现简单的反射——根据字符串创建类对象

2020-01-15
阅读 6 分钟
4.8k
最近项目需求中需要一个关键功能——根据字符串创建了类对象。由于C++没有类似Java、C#这类动态语言中的反射机制,所以在C++程序中一般用if...else...或者switch来将字符串或者枚举值与类对象的创建方法来进行对应的映射。这里如果我们实现一个简单的反射机制,可以根据字符串创建了类对象就可以简化这个过程,而且无论对...

C++信号槽

2020-01-13
阅读 2 分钟
2.9k
一个信号就是一个能够被观察的事件,或者至少是事件已经发生的一种通知;一个槽就是一个观察者,通常就是在被观察的对象发生改变的时候——也可以说是信号发出的时候——被调用的函数;你可以将信号和槽连接起来,形成一种观察者-被观察者的关系;当事件或者状态发生改变的时候,信号就会被发出;同时,信号发出者有义务调用...