實例化物件:「new」與非「new」
除了記憶體分配之外,以下幾行之間還存在哪些功能差異代碼?
Time t (12, 0, 0); //t is a Time object Time* t = new Time(12, 0, 0);//t is a pointer to a dynamically allocated Time object
非「新」實例化
第一行,Time t (12, 0, 0);,在本地範圍內建立Time 類型的變數t。該變數通常分配在堆疊上,並在其作用域結束時被銷毀。
'new'實例化
相反,第二行,Time* t = new Time(12, 0, 0);,(通常)透過:: operator new() 或Time::operator 在堆上分配一塊記憶體new() 函數。然後使用 Time::Time() 建構函數初始化該記憶體區塊,並將新分配的記憶體的位址設定為 this 指標。指向已分配記憶體的指標儲存在變數 t 中。
其他差異
雖然主要差異在於記憶體分配,但還有一些其他細微差別:
以上是'new”與非'new”物件實例化:主要功能差異是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!