- 博客(48)
- 收藏
- 关注
原创 智能指针的原理、概念及作用简述
智能指针C++中的智能指针有哪些,各自有什么作用?智能指针主要解决的是内存释放的问题,原本我们使用new申请一块自由存储区的空间时,最后都需要自己用delete回收,而C11引入了智能指针就是为了解决这个问题,它的主要原理就是将回收的程序放在智能指针的析构函数中,然后利用智能指针是创建在栈空间上的对象,他会在生命周期结束的时候有系统自动调用析构函数并回收,这样就做到了自动delete释放内存。C的智能指针具体有四种,分别是auto_ptr、unique_ptr、shared_ptr和weak_ptr
2023-09-14 18:08:11
477
1
原创 C++中的类型转换
C++中的类型转换隐式转换当一个值拷贝给另一个兼容类型的时候,隐式转换会自动进行,有编译器操作。C++面向对象的多态特性,本质就是通过父类指针实现对子类指针的封装,这其中也发生了隐式转换。除此之外,各种数值类型的转换等等,都给开发带来了不小便利。隐式转换的原则:低精度 -> 高精度,子类 -> 父类发生的条件:混合类型的运算中不同类型的赋值操作参数传递返回值传递隐式转换的风险一般在于自定义的类构造函数中,如果类的构造函数只有一个参数,编译器会默认规定这也是一个隐式的
2023-09-14 18:04:03
154
1
原创 C++中的内存区域
内存区域C++内存分为5个区域,堆区、栈区、全局/静态存储区、常量存储区、代码区栈区是由编译器在需要的时候分配,也由编译器自动释放的区域。用来存放局部变量,函数参数等。存放在栈区的数据只在当前函数或者下一层函数有效,一旦函数返回了,数据就释放了。堆区这是C的说法,在C++应该说是自由存储区,只不过默认是堆区,也可能是内存池这就涉及到分配器和我们自己设置的内存管理的问题了。堆区是由new来分配内存块的,但是编译器不会管理内存块的释放,需要使用者自行delete,如果没有释放则会造成内存泄
2023-09-14 17:28:39
180
1
原创 多态与虚函数
多态与虚函数详解多态是什么多态的意思字面上理解就是一个函数名有多种形态或者说多种状态,我们可以根据需求使用对应的那种形态。多态在c++中分为静态多态和动态多态。静态多态,也可以说编译时多态,也就是在编译时就设计了多个状态,比如说模板、函数重载都是在编译时就设计好的多态。对应的动态多态也就是运行时多态,是在程序运行时才产生的多态,是通过继承和虚函数来实现的,利用指针指向不同对象,进而使函数有不同的实现,这也是程序设计模式里最重要的技巧。虚函数的实现机制在说明虚函数的实现机制前,需要先说
2023-09-14 17:23:12
159
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅