簡體   English   中英

調用qsharedpointer的data()時引用的數量是否改變

[英]Does the number of references change when calling data() of a qsharedpointer

如果我寫這段代碼:

QSharedPointer<int> ptr(new int());  

指向整數的引用數為1。
但是當我這樣調用data()時:

QSharedPointer<int> ptr(new int());   
int* ptr2 = ptr.data();  

參考編號是1還是2?
感謝幫助。

它不會改變。 QSharedPointer僅與QSharedPointer共享指針。 它不會也不能與原始指針共享。

如果沒有其他QSharedPointer對象引用它,則QSharedPointer將在其超出范圍時刪除它持有的指針。

QSharedPointer::data()除了什么都不做

返回此對象引用的指針的值。

調用data()不會更改引用計數。 事實上,它並沒有真正任何事情。 它的實現就是這樣

inline T *data() const { return value; }

這直接取自Qt來源

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM