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

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