關於shallow copy
shallow copy (淺拷貝)是一種節省資源的方式,是一種write_on_copy,qt中很多的類(大部分是內存分配需要很多的類)都實現了shallow copy,比如 qimage類,讓兩個實例qimage a和qimage b,令a=b,則事實上,a並沒有完全複製了一份b的所有信息,它隻是在計數器上增加了一個對同一片內存的指向(當然也並非指針相等),如果a和b之中沒有人進行改變,將一直共享一份內容,但當其中過一個發生改變時,它會自動複製一份這份信息的內容,作為自己的無論怎樣修改都行,也不回影響到其他的實例。
比如Qimage*a -new Qimage(); QImage b=*a;delete a,這個過程時這樣的,開始a初始化了一塊內存來表示一個qimage,然後b和a公用這個信息,計數器變為2,最後a不在了,計數器變一,b獨享這份內容,此時a和b初始時的地址時一樣的。
最後更新:2017-04-02 00:06:40