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,函数体内部再加上转换的方法

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值