您好,登錄后才能下訂單哦!
在STL源碼剖析中有提到operator new 這個函數,然后也有說道new 的下面會調用operator new,博主覺得這段話有問題,原因有二:
1、operator 是操作符的關鍵字,比如我們要重載一個操作符,我們的寫法肯定是 operator xxx(xxx,xxx....),所以書中提到的調用operator new,我并不贊同,我覺得new 等同于 operator new
2、在C/C++里面,調用一般是涉及到函數層次的,誰調用誰,調試的時候也是有跳轉的,然而博主在調試的時候,并沒有看到new所在的函數,反而是直接跳到了operator new。下面給出博主的調試信息。
博主不太會截視頻,就用一系列的圖片來說明吧!
我們再看一下 數組的形式
這里進去了operator new[] 里層調用了operator new,但是這里并沒有看到 new [] 所在的函數,而是直接跳轉到了這里,可見new [] 等同于 operator new[],那么可以推測new 也是等同于 operator new的
還有一點,在我另一個博客(CSDN)也有吐槽過,操作符可以用函數名來調,也可以用typedef 以后的名稱來調。
所以書中說new 調了operator new,太草率,沒有足夠的證據。
當然書中說 operator new 調了malloc,這點暫時是沒錯的,也請不要懷疑。
以上為博主自己的拙見,不足之處還請指正。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。