自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 [c++]c++中的四种类型转换:static_cast、dynamic_cast、const_cast、reinterpret_cast

c++中的四种类型转换:static_cast、dynamic_cast、const_cast、reinterpret_cast。

2024-07-06 20:23:16 399

原创 初始化参数列表比在构造函数中初始化快

什么是初始化列表初始化列表的效率会比在构造函数中初始高

2024-07-06 17:51:03 249

原创 [c++]关于c++11的智能指针详细解析

C++11 引入了智能指针,以更好地管理动态分配的资源,主要包括std::shared_ptr:共享的智能指针std::unique_ptr:独占的智能指针std::weak_ptr:弱引用的智能指针智能指针通过 RAII(Resource Acquisition Is Initialization)原则,在超出作用域时自动释放资源,从而减少内存泄漏和悬挂指针的风险。智能指针的核心技术是,每次使用它一次内部引用计数加1,每析构一次内部引用计数减1,当为0时,释放原始指针指向的堆区内存。

2024-06-21 20:44:21 974

原创 什么是虚假唤醒?如何解决虚假唤醒呢?

虚假唤醒(spurious wakeup)是指在多线程编程中,一个线程在等待某个条件变量时被意外地唤醒,而实际上并没有满足唤醒条件的情况。防止虚假唤醒:我们可以将条件判断的if换成while,这样线程就会被重复判断而不再会跳出判断代码块,从而不会产生虚假唤醒这种情况了。通过循环检查条件,确保线程在被唤醒后再次验证条件是否满足,从而防止虚假唤醒带来的问题。

2024-06-17 17:20:14 448 1

原创 [c++]placement new(定位new运算符)用法及用途

定位 new 运算符(Placement new)是 C++ 提供的一种特殊的 new 运算符,它允许在已经分配的内存地址上构造对象。这在需要精细控制对象内存布局的高级应用中非常有用,例如内存池、嵌入式系统和实时系统。

2024-06-12 20:52:17 576

原创 为什么构造函数不能声明为虚函数而析构函数可以?

构造函数不能声明为虚函数的原因:虚函数的调用是需要虚函数指针,而该指针存放在对象的内存空间。所以如果构造函数声明为虚函数,由于对象还未创建,还没有内存空间,更没有虚函数表地址来调用虚函数构造函数了。

2024-06-06 14:10:37 381

原创 [c++]关于c++11的function函数的使用:

C++11 引入了一个叫做 `std::function` 的函数封装器,它可以存储、复制和调用任何可调用对象(如函数、Lambda 表达式、成员函数指针等)。

2024-06-04 19:33:11 609

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除