- 博客(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
原创 [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关注的人