您的位置:首页 > 编程语言 > C语言/C++

c++ new new[]和 delete delete[] 问题

2015-11-13 20:21 351 查看
在一个类中,如果重写了new 操作符,我们是用static来修饰,因为new是在一个类被创建以前就被调用了的  我们先来看看顺序吧

new:我们开到,当调用new创建一个对象的时候,会先调用局部的new,然后交给全局的new,在全局的new中,我们使用malloc

分配内存,然后调用构造函数,所以说构造函数是给类加了一套外衣

delete:先调用析构函数,然后再是局部的delete,全局的delete,free,就是这么个过程

new[]:会调用局部new[] 然后调用局部new,然后全局new,一次性的分配内存,然后调用构造函数,全局的new[] 没有被调用

delete[]:先是析构,局部的delet[],局部的delete,全局的delete,free

这里 : 我们可以劫持内的创建过程,如果我们不在局部new中调用全局的话,且不给类分配内存的话,那么构造函数就不会被调用,也就是说我们new

不出东西了,好玩吧


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: