参看博客:https://baike.baidu.com/item/%E6%9E%90%E6%9E%84%E5%87%BD%E6%95%B0/9483718?fr=aladdin 析构函数(destructor) 与构造函数相反,当对象结束其生命周期,如对象所在的函数已调用完毕时,系统自动执行析构函 ...
分类:
编程语言 时间:
2018-12-06 15:24:46
阅读次数:
178
POOL 什么是pool 池分配是一种非常快速的内存分配方案,但其使用受到限制。有关池分配的更多信息(也称为简单隔离存储,请参阅 "池化概念" 和 "简单隔离存储" )。 我为什么要使用Pool? 使用池可以更好地控制程序中内存的使用方式。例如,您可能希望在一个点上分配一堆小对象,然后到达程序中的某 ...
分类:
其他好文 时间:
2018-12-05 02:22:08
阅读次数:
214
条款5:了解C++默认编写并调用哪些函数 编译器为class默认创建6个函数: default构造函数 copy构造函数 move构造函数 copy assignment操作符 move assignment操作符 析构函数 如果自己构造了带参数的构造函数,编译器不会产生default构造函数 ba ...
分类:
其他好文 时间:
2018-12-05 00:12:09
阅读次数:
186
在C++11中有两个智能指针类型来管理动态对象,share_ptr允许多个指针指向同一个对象,unique_ptr则“独占”所指对象。 我们知道指针或引用在离开作用域时是不会进行析构的,但是类在离开作用域时会自动执行析构函数,所以我们可以用一个类来实现指针指针(unique_ptr本质上是一个类,只 ...
分类:
其他好文 时间:
2018-12-03 13:59:29
阅读次数:
808
1、构造函数和析构函数 2、拷贝构造函数 3、 应用场景 3.1 如果函数返回值是用一个对象接收的,那么会发生一个值拷贝,通过拷贝构造函数创建一个匿名对象。如下有函数Test func2(){ }: 3.2 如果返回值有一个对象来接收,那么这个接收过程不会出发值拷贝。 3.3 另一种更为复杂的情况, ...
分类:
其他好文 时间:
2018-12-01 21:53:39
阅读次数:
133
尽量避免使用值传递,推荐使用const 引用来传递参数 临时变量的代价。 循环体中的局部变量,尽量在循环体内定义 复制操作与构造析构函数的代价差异。 避免过大的循环 cache的时间局限性和空间局限性 时间局限性:如果一个存储单元被访问,则可能该单元会很快再次被访问,因为存在循环; 空间局限性:如果 ...
分类:
编程语言 时间:
2018-12-01 11:06:44
阅读次数:
217
一直就想写博客,但感觉学的又少,什么都不会再写错,最后一拖再拖。莫不如学点写点 打了两年比赛,天天用C/C++,可是连类-继承-重载-多态-虚函数等等都不清楚 首先是 定义类,构造函数以及析构函数 内部函数定义方式和普通函数一样 类型+函数名(参数...) 构造函数:创建类时会自动调用,可以有参数, ...
分类:
编程语言 时间:
2018-11-29 22:24:26
阅读次数:
301
如下为类型CMyString的声明,请为该类型编写构造函数、copy构造函数、析构函数和赋值运算符函数。 ...
分类:
其他好文 时间:
2018-11-27 01:25:12
阅读次数:
130
参考: "C++中的RAII介绍" RAII全称是“Resource Acquisition is Initialization”,直译过来是“资源获取即初始化”,也就是说在构造函数中申请分配资源,在析构函数中释放资源。因为C++的语言机制保证了,当一个对象创建的时候,自动调用构造函数,当对象超出作 ...
分类:
编程语言 时间:
2018-11-26 22:07:08
阅读次数:
294
如果debug调试的时候中断总是停在析构函数的delete[] p上,那可能就是调用析构函数的这个对象没有被分配空间 先找到调用调用析构函数出错的这个对象,然后查看它是否被分配了空间,有可能你觉得你分配了,但实际上没有 ...
分类:
其他好文 时间:
2018-11-25 16:17:00
阅读次数:
172