編譯器是如何處理new和delete的

Complex* pc = new Complex(1,2);//Complex爲類名(複數)

再編譯器處理這一語句的時候,先分配複數的內存,然後進行轉型,最後調用構造函數

void* men= operator new( sizeof(Complex));//第一步,分配內存
pc = static_cast<Complex*>(men);//第二步,轉型
pc->Complex :: Complex(1,2);//第三步,調用構造函數
delete ps;

在編譯器的處理過程中,這一語句轉化爲:

String::~String(ps);//析構函數
operator delete(ps);//釋放內存

(侵刪)

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