Skip to content

Latest commit

 

History

History
43 lines (24 loc) · 1.37 KB

README.md

File metadata and controls

43 lines (24 loc) · 1.37 KB

Cplusplus_LifeCycle

物件的生命週期


stactic obj, 靜態物件 (全域變數或是類別或方法中的 static 物件)

僅會被創建一次,也僅會被初始化一次,存活時間直到程式 end 為止。 在程式執行期間,靜態物件的位址不會變更。 然而,靜態物件在 mulit-threads 使用時,要特別注意使用 lock 避免資源競奪。


free store, 自由空間 (new 出來的物件)

程式設計師能利用 new 和 delete 運算子操控物件的生命時間。


temp obj, 暫存物件

其數值會被繫結 bind with 參考 Ref 身上,通常發生在運算過程中產生的 result 結果值。 暫存物件的生命週期由用途來決定,否則生命週期將跟靜態物件一樣延續到程式 end 為止。


automatic obj, 自動型物件 (local 變數)

離開作用域 scope 時被銷毀,此物件生成時,會儲存在 stack 堆疊上,每一函數都有各自的 stack frame。


thread-local, 物件

這類物件跟他所屬的執行緒一起生,一起被銷毀。(可能常發生在手機元件上。)


array & element , 陣列物件

陣列元素物件的生命生成和銷毀都以所屬陣列物件為主,由其擁有者所決定。 這包含非靜態的類別成員。(其擁有者為類別)