malloc和free不知道构造函数和析构函数
malloc/free:只要给出想要的内存的长度就分配,并返加(void*)
new/delete:分配内存同时进行类型检测,内置了sizeof运算,如果分配类的话,自动调用类的构造函数,delete也是,释放内存时调类的析构
为什么有必要写自己的operator new和operator delete?
答案通常是:为了效率。缺省的operator new和operator delete具有非常好的通用性,它的这种灵活性也使得在某些特定的场合下,可以进一步改善它的性能。尤其在那些需要动态分配大量的但很小的对象的应用程序里,情况更是如此。
有这样一个方法来实现你的自定义的operator new:先让缺省operator new分配一些大块的原始内存,每块的大小都足以容纳很多个airplane对象。
本文探讨了自定义C++操作符new和delete的原因及其优化方式。通过预先分配大量内存块来容纳多个对象,从而提高频繁小对象分配和释放时的效率。

533

被折叠的 条评论
为什么被折叠?



