栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

4.29C++

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

4.29C++

侯捷部分

new 用来开辟对象的时候,编译器会将这个步骤分成三步,第一是分配内存,第二部是转换类型,第三步是构造函数,动态分配存入初始值。先分配空间,在分配初始值。delete和new相反的,但只有两部步,第一步析构函数,将 值删除,第二部,删除指针本体。

这边有一篇不错的文章,讲的是new和malloc的面试考点

https://blog.csdn.net/nie19940803/article/details/76358673?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165119913016782391892902%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165119913016782391892902&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-76358673.142^v9^pc_search_result_control_group,157^v4^control&utm_term=new%E5%92%8Cmalloc%E7%9A%84%E5%8C%BA%E5%88%AB&spm=1018.2226.3001.4187https://blog.csdn.net/nie19940803/article/details/76358673?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165119913016782391892902%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165119913016782391892902&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-76358673.142%5Ev9%5Epc_search_result_control_group,157%5Ev4%5Econtrol&utm_term=new%E5%92%8Cmalloc%E7%9A%84%E5%8C%BA%E5%88%AB&spm=1018.2226.3001.4187编译器会自动分配内存块,但是这个内存块也是分成几个部分的,红色叫cookie,绿色是用来填充的

array new 一定要搭配 array delete,如果array new 并没有搭配arraydelete会照成内存泄漏,原因是编译器默认析构函数只进行了一次,但动态分配的空间可能有多个,本体倒不会出错。

static修饰函数,函数没有this指针

偏特化分为范围上的偏还有个数上面的偏。个数上的偏可以是这样的,原本是有两个模板参数,现在其中的一个模板参数已经被固定,只剩下一个可以使用。而范围上的偏移则可以理解成和个数偏移差不多的,固定这个模板只接收了这个类型

 

 

 接下来讲到一个转换函数,转换函数不能有返回值,需要转换成什么类型,在第二个箭头处就写什么类型,后面最后面还要加个const,函数体内部再加上转换的方法

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/850781.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号