上一页 1 ··· 25 26 27 28 29 30 31 32 33 ··· 52 下一页
摘要: # 62.对象复用的了解,零拷贝的了解 ## 1.对象复用 对象复用是指将已经创建的对象进行重复使用,而不是创建新的对象。在面向对象编程中,对象复用可以通过以下几种方式实现: 1.对象池:对象池是一种常见的对象复用方式,它可以将已经创建的对象保存起来,并在需要时将其重新使用。 2.模板类和模板对象: 阅读全文
posted @ 2023-07-05 10:34 CodeMagicianT 阅读(283) 评论(0) 推荐(0)
摘要: # 61.什么是内存泄露,如何检测与避免 内存泄漏是指在程序运行过程中,一部分程序申请的内存空间由于没有及时释放,导致系统中存在大量的已分配但无法使用的内存空间,最终会耗尽可用内存资源,导致程序崩溃或者运行缓慢。 ## 1.内存泄漏的主要原因包括: 1.忘记释放内存:程序员在使用完已分配的内存后,没 阅读全文
posted @ 2023-07-05 10:12 CodeMagicianT 阅读(324) 评论(0) 推荐(0)
摘要: # 60.C++中新增了string,它与C语言中的 char *有什么区别吗?它是如何实现的? 1.实现方式:string是一种抽象类,它的实现由std::string和char *转换而来。 在实现上,`std::string` 内部通常会使用动态数组来存储字符串,可以动态地分配内存。同时,`s 阅读全文
posted @ 2023-07-05 09:39 CodeMagicianT 阅读(182) 评论(0) 推荐(0)
摘要: # 59.有哪些情况必须用到成员列表初始化?作用是什么? ## 1.必须使用成员初始化的四种情况 ① 当初始化一个引用成员时; ```C++ struct MyClass { const int mya; int& myb; MyClass(int a, int& b) :mya(a), myb(b 阅读全文
posted @ 2023-07-05 09:27 CodeMagicianT 阅读(199) 评论(0) 推荐(0)
摘要: # 58.类成员初始化方式?构造函数的执行顺序 ?为什么用成员初始化列表会快一些? ## 1.类成员初始化方式 ### 1.1初始化方式一:默认时初始化 如果类成员没有被显式初始化,将会使用默认初始化。默认初始化指没有提供初始化式的情况下,将使用默认值进行初始化。对于基本数据类型(如整数、浮点数等) 阅读全文
posted @ 2023-07-04 22:35 CodeMagicianT 阅读(465) 评论(0) 推荐(0)
摘要: # 57.malloc、realloc、calloc的区别 malloc、realloc和calloc是C语言中的内存分配函数,它们有以下区别: 1.内存来源:malloc和realloc分配的内存空间位于堆中,而calloc在分配内存空间后会将其每一位都初始化为零,它也被称为“零初始化内存分配器” 阅读全文
posted @ 2023-07-04 19:42 CodeMagicianT 阅读(1451) 评论(0) 推荐(0)
摘要: # 56.malloc与free的实现原理? 1.在标准C库中,提供了malloc/free函数分配释放内存,这两个函数底层是由brk、mmap、,munmap这些系统调用实现的; 2.brk是将数据段(.data)的最高地址指针_edata往高地址推,mmap是在进程的虚拟地址空间中(堆和栈中间, 阅读全文
posted @ 2023-07-04 13:52 CodeMagicianT 阅读(121) 评论(0) 推荐(0)
摘要: # 55.malloc申请的存储空间能用delete释放吗? 不能,malloc /free主要为了兼容C,new和delete 完全可以取代malloc /free的。 malloc /free的操作对象都是必须明确大小的,而且不能用在动态类上。 new 和delete会自动进行类型检查和大小,m 阅读全文
posted @ 2023-07-04 13:09 CodeMagicianT 阅读(394) 评论(0) 推荐(0)
摘要: # 54.new和delete的实现原理,delete是如何知道释放内存的大小的? 1、 new简单类型直接调用operator new分配内存; 而对于复杂结构,先调用operator new分配内存,然后在分配的内存上调用构造函数; 对于简单类型,new[]计算好大小后调用operator ne 阅读全文
posted @ 2023-07-04 13:02 CodeMagicianT 阅读(570) 评论(0) 推荐(0)
摘要: # 1.重载new和delete 尽管我们说能够 “重载new和delete",但是实际上重载这两个运算符与重载其他运算符的过程大不相同。要想真正掌握重载new和delete的方法,首先要对new表达式和delete表达式的工作机理有更多了解。 当我们使用一条new表达式时: ```C++ // n 阅读全文
posted @ 2023-07-04 13:00 CodeMagicianT 阅读(238) 评论(0) 推荐(0)
上一页 1 ··· 25 26 27 28 29 30 31 32 33 ··· 52 下一页