在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,這點暫時是沒錯的,也請不要懷疑。
以上為博主自己的拙見,不足之處還請指正。
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網站題目:STL之operatornew函數-創新互聯
文章地址:http://vcdvsql.cn/article18/ddjdgp.html
成都網站建設公司_創新互聯,為您提供App設計、品牌網站制作、手機網站建設、動態網站、定制網站、網站收錄
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯