- 博客(10)
- 资源 (20)
- 收藏
- 关注
原创 C++ boost库智能指针(四):intrusive_ptr
intrusive_ptr这个智能指针不怎么好用,虽然它和shared_ptr也是基于引用计数的,但需要自己来实现引用计数的增加与减少。需要在我们管理的指针对象中添加一个计数的成员,例如下面的类Test. 头文件:#include <boost/intrusive_ptr.hpp>class Test{public: Test() { _iCount = 0; cout << "构造" << endl; } ~Test...
2020-06-23 00:08:37 1195
原创 C++ boost库智能指针(三):weak_ptr
weak_ptr是shared_ptr得到协助者,可以观察shared_ptr是否过期,weak_ptr不改变引用计数,也不能使用 *,->操作符,是一个很弱的智能指针。例如下面的代码:#include <iostream>#include <boost/make_shared.hpp>#include <boost/weak_ptr.hpp>using namespace std;using namespace boost;cl...
2020-06-22 23:19:07 364
原创 C++ boost库智能指针(二):shared_ptr和shared_array
shared_ptr是boost最重要的智能指针,最像智能指针的"智能指针",由于它的优越表现,被加入了C++11标准。 shared_ptr与scoped_ptr —样包装了 new操作符在堆上分配的动态对象,但它实现的是引用计数型的智能指针,可以被自由地拷贝和赋值,在任意的地方共享它,和scoped_ptr、auto_ptr一样重载了“*”和“->”,用get()可以获取被管理的指针,也没有算术操作符,同样也不能管理数组内存,当没有代码使用(引用计数为0)它时...
2020-06-22 23:18:36 979
原创 C++ boost库智能指针(一):scoped_ptr 与 scoped_array
使用scoped_ptr需要包含的头文件#include <boost/scoped_ptr.hpp> 相比于auto_ptr, boost的scoped_ptr对指针的使用权进行转移,这是因为在scoped_ptr内部对拷贝,赋值做了私有化:template<class T> class scoped_ptr // noncopyable{private: T * px; scoped_ptr(scoped_ptr const &..
2020-06-22 23:18:19 625
原创 C++ 标准库智能指针auto_ptr源码分析
智能指针是C++标准中一个很重要的内容,它帮C++程序员解决了部分内存开辟与释放的问题,使C++程序员可以和java, C#一样不为内存泄露而担心。使用智能指针需要包含头文件#include <memory> C++标准的智能指针主要有4个,auto_ptr, unique_ptr、shared_ptr 和 weak_ptr 。另外boost库,Qt也有智能指针. auto_ptr是C++98提出的比较早的智能指针,在C++11以后已经不建议使用了,但是分析它的源码...
2020-06-22 23:17:56 614
原创 Qt响应ctrl 鼠标滚轮字母等组合按键
一般的软件会有很多组合快捷键,例如QQ截图ctrl + alt + A,微信截图 alt A,看PDF时ctrl +鼠标滚轮进行缩放等。Qt对这些快捷键都有了实现,下面分别对这些功能做介绍并提供代码实现。1鼠标按键 重写mousePressEvent方法就可以实现对鼠标按键的控制,如下: void mousePressEvent(QMouseEvent *event); 常用的鼠标按键 LeftButton ...
2020-06-17 00:27:12 3030
原创 C++数据结构:普通队列与循环队列
什么是队列? 队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。队列中的数据元素遵循“先进先出”(First In First Out)的原则,简称FIFO结构。队列分类 普通队列与循环队列,普通队列可以看做是一列数据,环形队列可以看做是一个圆,当普通队列的数据索引可以循环设置时,普通队列就成了循环队列。这两种都可以用数组来实现。循环队列的C++实现 下面说明用数组实现循环队列的方法...
2020-06-14 22:32:24 1421
原创 MFC CArchive类读写文件的应用
一 写文件 CFile和CArchive进行绑定,CArchive把数据写到文件中,代码如下: CFile file; BOOL isOk = file.Open(L"1.txt", CFile::modeCreate | CFile::modeWrite); if (!isOk) { return; } CArchive ar(&file, CArchive::store); int a = 10; CString str = L"Hello...
2020-06-14 15:55:34 701
原创 ProcessExplorer查找C++ exe程序运行所需要的的dll
当我们把自己打包的exe程序放到别人电脑时可能出现缺少dll的情况,此时可以用ProcessExplorer工具找出对应的dll, 把exe先运行起来,将ProcessExplorer工具栏的靶子拖动到运行的exe窗口上,此时该exe会被ProcessExplorer监控到 如下图 我是用MFC写的程序,那么就就需要mfc系列的头文件,如果没有dll栏目,需要在菜单中设置, 找到该dll, 右击属性就会看到dll路径了。...
2020-06-14 15:54:09 1146
原创 C++构造函数语义学之默认构造函数
在学C++时,通常有一种概念,在创建类对象时,如果没有构造函数,那么会调用默认的构造函数,并且把相关成员赋值为0,这句话正确吗,看看下面这个例子:#include <iostream>using namespace std;class Foo{public: //Foo() {} void setValue(int value) { m_Value = value; } int m_Value; int *m_pArray;};i...
2020-06-06 22:07:26 306
C++ QMainWindow无边框窗口自定义标题栏可拖拽移动拉伸改变窗口大小
2024-04-23
Qt蓝牙串口源码支持十六进制发送、字符发送、定时发送
2022-02-22
c++ PImpl实现机制
2021-09-15
很全的 Qt qss
2020-09-29
jsoncpp_sdk_x64.rar
2020-04-06
支持向量机通俗导论(理解SVM的三层境界)PDF
2018-04-13
C# TCP网络通信示例:多人聊天发文件
2018-04-02
C++/OpenCV2.4.9 数字精确识别源码
2017-11-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人