- 博客(10)
- 收藏
- 关注
原创 可变参数实现工厂模式
最近在看`webrtc`的代码,看到音视频编解码器的创建部分,使用了`c++11`的可变参数模板,实现了编解码器的工厂模式,觉得挺有意思的分享一下。
2021-12-11 22:48:40
1692
原创 C语言宏的使用
之所以写这篇文章,是因为最近在使用类似printf之类的函数格式化uint64_t类型数据的时候,由于uint64_t在32位和64位平台下定义类型不一样,编译器会有Wformat警告。
2021-06-05 15:32:27
709
1
原创 智能指针之unique_ptr简单实现-实现篇
1 序1.1 智能指针为了避免手动在堆中分配出的内存没有释放造成内存泄露的问题,C++11提供了智能指针。智能指针将指针封装成一个栈对象。栈对象在生命周期结束自动销毁时会调用析构函数。智能指针基本上也是在析构函数中做文章,实现的堆上内存管理。C++11推荐使用的智能指针有unique_ptr、shared_ptr和weak_ptr三种。1.2 内容简介本文为std::unique_ptr的实现篇,介绍实现一个UniquePtr类,实现与std::unique_ptr类似的功能。代码实现参考了st
2020-07-25 14:48:04
2995
3
原创 智能指针之unique_ptr简单实现-使用篇
1 序1.1 智能指针为了避免手动在堆中分配出的内存没有释放造成内存泄露的问题,C++11提供了智能指针。智能指针将指针封装成一个栈对象。栈对象在生命周期结束自动销毁时会调用析构函数。智能指针基本上也是在析构函数中做文章,实现的堆上内存管理。C++11推荐使用的智能指针有unique_ptr、shared_ptr和weak_ptr三种。1.2 内容简介为了更直观的学习std::unique_ptr,计划分两篇介绍实现一个UniquePtr类,实现与std::unique_ptr类似的功能。这样在
2020-07-12 14:42:13
976
原创 C++对象构造的三种方式:直接构造or拷贝构造or移动构造
文章目录背景知识示例说明测试环境对象创建流程直接声明方式new操作符方式对象构造直接构造拷贝构造移动构造一些建议源码下载相关推荐背景知识构造函数(Constructor)就是用来构造对象的函数。C++对象在创建的过程中会调用构造函数对类中成员进行初始化。构造函数包含有普通构造函数、拷贝构造(Copy Constructor)函数以及C++11以后新增的移动构造(Move Constructor)函数三种。通常,我们说构造函数只特指普通构造函数。示例说明文中示例均使用下面的自定义Test类,该类包含
2020-06-26 18:49:56
1993
1
原创 让程序编译更优雅的几个CMake命令
本文通过一个工程示例介绍了几个让程序编译更优雅的CMake命令。文末有完整下载地址。该工程示例首先生成一个动态库(libversion.dll:该库主要用于打印版本相关的信息),然后在一个可执行程序(cf_test)中使用该库。
2020-06-14 13:38:12
3812
原创 Gitee+PicGo+Pandoc+Typora组建markdown编辑器
使用markdown语言编辑文档最大的一个问题就是图片链接问题。markdown代码中不存放图片,是图片地址。文中引用本地图片直接粘贴到网络平台肯定是不行的,是需要重新上传编辑的,太麻烦。使用网络中的图片就可以在本地和网络平台通用。因此,我们需要把自己的图片上传到网络,拿到图片的地址填写到文中。本文主要介绍的就是如何用最简单的方式实现该功能。同样经过多种试验对比,最终选用gitee+PicGo+pandoc对Typora功能进行扩展实现。
2020-05-30 17:24:13
558
原创 学C++之前要不要先学C语言
C++初期的学习和C类似,会C的人无需过多的学习就可以入门。不会C的话学C++之前也不用学C,直接从C++学就行了。因为在C和C++中学习相同知识点的难度系数是一样的。回到题目的问题,一般能问这个问题的人都不会C。所以答案就是:不用。学会了C++,C基本上也就会了。
2020-05-23 18:34:25
2972
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人