- 博客(3)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 C++ - 深入理解new
C++中new有三种形式:new operator、operator new和placement new。1. new operatornew operator就是我们平时使用的new表达式,来为特定类型分配内存,并在新分配的内存中构造该类型的一个对象。e.g.Employee* sp = new Employee("001");它实际上发生了三个步骤:该表达式调用名为operator new的标准库函数,分配足够大的原始的未类型化的内存,以保存指定类型的一个对象;运行该类型的一个构造函数,
2020-09-06 17:15:20 1457
转载 死锁,死锁的四个必要条件以及处理策略
转载自:https://blog.csdn.net/wljliujuan/article/details/796140191. 什么是死锁死锁是指两个或两个以上的进程(线程)在运行过程中因争夺资源而造成的一种僵局,若无外力作用,这些进程(线程)都将无法向前推进。2.死锁与饥饿饥饿(Starvation)指一个进程一直得不到资源。死锁和饥饿都是由于进程竞争资源而引起的。饥饿一般不占有资源,死锁进程一定占有资源。3.产生死锁的四个必要条件互斥:至少有一个资源必须处于非共享模式,即一次只有一
2020-09-05 17:57:39 2897
原创 智能指针循环引用
C++11引入了智能指针unique_ptr,shared_ptr,及weak_ptr来帮助用户管理动态分配的内存,其本质是基于RAII原理,即当程序运行超过某个作用域("{ }"包含的区域)时,在该作用域内声明定义的对象会自动调用自己的析构函数析构。当智能指针对象析构的时,会将它所指向的对象的资源释放掉,从而不用用户自己手动的调用delete释放。对于shared_ptr,它内部有一个引用计数变量,每当它被拷贝一次,这个变量就加1。同样地,每当它被析构,变量就减1。当引用计数变量变为0时,就将它所指向的
2020-09-05 16:26:47 2062 2
自定义类的对象在定义时使用等号=初始化会经历哪几个过程?
2017-05-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人