C++ new和delete的实现原理

 

new和delete的实现是通过调用malloc和free函数。

new和delete不仅承载着内存分配的功能还承载着对象构造函数的调用功能。

 

new 操作符的执行过程:
1. 调用operator new分配内存 ;
2. 调用构造函数生成类对象;
3. 返回相应指针。

 

new和operator new之间的联系

A* a = new A;分为两步:1.分配内存,2.调用A()构造对象。 

分配内存这一操作就是由operator new(size_t)来完成的,如果类A重载了operator new,那么将调用A::operator new(size_t ),如果没有重载,就调用::operator new(size_t ),全局new操作符由C++默认提供。

 

 

Ref:

https://blog.csdn.net/tonglin12138/article/details/85699115

https://www.cnblogs.com/raichen/p/5808766.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章