- 博客(20)
- 收藏
- 关注
原创 【C++智能指针】04_weak_ptr
std::weak_ptr是一个不控制资源生命周期的智能指针,是对对象的一种弱引用,只是提供了对其管理的资源的一个访问手段,引入它的目的为协助std::shared_ptr工作。以上就是今天要讲的内容,后续会有更多内容。
2025-03-07 17:58:17
742
原创 【C++智能指针】 03_shared_ptr
std::unique_ptr对其持有的资源具有独占性,而std::shared_ptr持有的资源可以在多个std::shared_ptr之间共享,每多一个std::shared_ptr对资源的引用,资源引用计数将增加1,每一个指向该资源的std::shared_ptr对象析构时,资源引用计数减1,最后一个std::shared_ptr对象析构时,发现资源计数为0,将释放其持有的资源。多个线程之间,递增和减少资源的引用计数是安全的。
2025-03-07 17:53:46
773
原创 【C++智能指针】02_unique_ptr
unique_ptr采用的是独享所有权语义,对其持有的堆内存具有唯一拥有权。转移一个unique_ptr将会把所有权全部从源指针转移给目标指针,源指针被置空;所以unique_ptr不支持普通的拷贝和赋值操作,不能用在STL标准容器中;局部变量的返回值除外(因为编译器知道要返回的对象将要被销毁);如果你拷贝一个unique_ptr,那么拷贝结束后,这两个unique_ptr都会指向相同的资源,造成在结束时对同一内存指针多次释放而导致程序崩溃。以上就是今天要讲的内容,后续会有更多内容。
2025-03-07 17:24:04
673
原创 【C++智能指针】01_走入智能指针
在实际的C++开发中,我们经常会遇到诸如程序运行中突然崩溃、程序运行所用内存越来越多最终不得不重启等问题,这些问题往往都是内存资源管理不当造成的。有些内存资源已经被释放,但指向它的指针并没有改变指向(成为了野指针),并且后续还在使用;有些内存资源已经被释放,后期又试图再释放一次(重复释放同一块内存会导致程序运行崩溃);没有及时释放不再使用的内存资源,造成内存泄漏,程序占用的内存资源越来越多。智能指针是用于存储动态分配对象指针的类,能自动释放对象,避免堆内存泄漏。
2025-03-07 17:13:13
881
原创 C++_多态_03_虚析构函
所以说析构函数是否需要写成虚析构函数,首先得发生多态行为,才需要父类析构写成虚析构,这也才可以保证delete 父类指针时候,能够去调用子类的析构函数;本质我们delete父类指针,就是为了析构子类对象的,因为父类指针指向了子类对象。为了析构子类对象,那么就需要多态,这个行为才会产生;需要多态就必须子类重写父类的虚析构函数;以上就是今天要讲的内容,后续会有更多内容。
2025-02-27 20:03:57
312
原创 C++_多态_02_通用性多态特定性多态
自定义数据类型的转换,主要指类类型与其它数据类型之间的转换。(1)在C++中,把其它数据类型转换成类对象是通过转换构造函数来完成的,前提是此类的转换构造函数只带1个非缺省参数。(2)把类对象转换成其它数据类型是通过类型转换函数来完成的。类型转换函数又称为类型强制转换成员函数或转换运算符函数,他是类中的一个非静态成员函数。需要注意的是类型转换函数不能有返回值,不带任何参数,也不可以将类型转换函数定义为友元函数。class<类型说明符1>public: operator<类型说明符2>();
2025-02-27 17:32:20
839
原创 C++_多态_01_多态简介
在C++中,多态(Polymorphism)是面向对象编程的重要特性之一,多态性主要通过这几个机制来实现:函数重载、运算符重载、虚函数和模板。下面我们将详细讲解多态及其相关概念。简单来说,多态就是“一个接口,多种实现”,同一操作,传入不同对象,产生不同的行为和结果。多态性是面向对象程序设计的一大支柱,在程序中指的是在基类中定义的属性或服务被派生类继承之后,可以表现出不同的行为,也就是指一段程序能够处理不同类型对象的能力。
2025-02-27 17:14:10
440
原创 多态_polymorphism
自定义数据类型的转换,主要指类类型与其它数据类型之间的转换。(1)在C++中,把其它数据类型转换成类对象是通过转换构造函数来完成的,前提是此类的转换构造函数只带1个非缺省参数。(2)把类对象转换成其它数据类型是通过类型转换函数来完成的。类型转换函数又称为类型强制转换成员函数或转换运算符函数,他是类中的一个非静态成员函数。需要注意的是类型转换函数不能有返回值,不带任何参数,也不可以将类型转换函数定义为友元函数。classpublic:operator();
2024-10-17 20:49:09
753
原创 C++_tutorial_数组
home/liubo/00-liubo/learning/Cpp_tutorial/picture/创建数组.png。
2024-04-17 10:38:30
655
原创 lwIP官网介绍
第一章 lwIP官网介绍本文对lwIP官网做简要的介绍lwIP的代码已经交由Savannah托管,项目主页即lwIP官网地址:http://savannah.nongnu.org/projects/lwip/图2-1 LwIP项目主页单击Project Homepage,会打开一个网页,如图3-1所示。这个网页可以看作lwIP的官方说明文档。我们可以通过这个网页获得关于lwIP的很多信息,包括使用lwIP的注意事项、数据的复制、系统初始化流程、多线程中要注意的问题、优化方法、内核模块的分类介绍、内核数
2022-12-03 15:30:15
3418
3
原创 FSMC寻址解析
FSMC( Flexible static memory controller)全称“灵活的静态存储器控制器”,是 STM32中一个很有特色的外设,通过 FSMC,STM32可以通过FSMC与SRAM、ROM、PSRAM、Nor Flash和NandFlash存储器的引脚相连,从而进行数据的交换。利用FSMC写地址,不用手工设置地址线,MCU相应地址线自动设置高低电平选中存储外设的地址例如数据0xABCD被写入0x1234这个地址。
2022-11-21 22:31:42
1245
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人