C++
文章平均质量分 71
记录C++的一些用法技巧
爱躺平的咸鱼
这个作者很懒,什么都没留下…
展开
-
C++线程类的封装
操作系统:ubuntu20.04LTS使用头文件:pthread.h在之前的文章中已经实现了C++不可复制基类和线程同步类的封装,本文章内容实现对线程的封装。原创 2024-04-24 21:51:47 · 648 阅读 · 2 评论 -
锁的封装和RAII实现
RAII(Resource Acquisition Is Initialization)是一种 C++ 中的编程技术,它利用了对象的生命周期和析构函数的特性来管理资源的获取和释放。在 RAII 中,资源的获取和释放都与对象的生命周期相关联,资源在对象构造时被获取,而在对象析构时被释放,从而确保资源的正确管理,避免资源泄漏和内存泄漏等问题。RAII 的基本原则是:资源的获取应该在对象的构造函数中进行,而资源的释放应该在对象的析构函数中进行。下面是对读写锁的封装,和上面类似,只是调用的加锁函数有所不同。原创 2024-04-22 16:58:45 · 726 阅读 · 0 评论 -
C++实现不可复制基类
例如对象B是用对象A来初始化的,对象B有一个new出来的数组,在明确知道之后不需要使用到对象A后,可以直接将A对象中new出来的数组的所有权转移给B,避免了B对象调用new操作符。有时候,我们可能希望某些类在设计上是不可复制的,因为复制行为可能导致不可预测的行为。此外,如果类对象包含指向动态分配内存的指针,复制可能导致资源管理问题,例如内存泄漏或二次释放。上面的右值引用中取消了const的使用,这是由于右值引用是为了转移资源的所有权,而const限制了对象的可修改性,因此无法使用const关键字。原创 2024-04-22 10:47:19 · 137 阅读 · 0 评论