你查看的是operator new ()這個函式的回傳值,不是new的回傳值。new操作可以理解成兩個部分:首先就是用malloc函式實作的operator new函式,它的任務是malloc申請一個空記憶體回傳一個void*指標(當然還有判空拋例外等)。第二部分就是編譯器的自己操作部分了:首先編譯器呼叫建構式初始化物件,然后把void*轉化成T*作為整個new的回傳值。所以只要理解第一部分,也就是operator new函式就行了,其他的就當作編譯器自動完成的。(自己的理解,實際應該有錯,但是能理解操作就行)。
uj5u.com熱心網友回復:
new 是關鍵字,不是函式
他其實是兩個動作,第一個先呼叫,operator new 回傳一個void*
再在這個void*存盤上呼叫建構式,形成相應的物件付給變數
眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......
值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......