這個問題在這里已經有了答案: C 是否可以確定指標是否指向有效物件? (6 個回答) 9 天前關閉。
我正在閱讀C 是否可以確定指標是否指向有效物件?這個執行緒中的正確答案是不,你不能那樣做,但是執行緒現在已經很老了,我想知道是否有任何改變。我用可能的智能指標閱讀了這一點。那么如何實作呢?
uj5u.com熱心網友回復:
是否可以確定指標是否指向有效物件
不,通常不可能確定指標是否指向有效物件。
我想知道是否有任何改變
在這方面沒有任何改變。
我用可能的智能指標閱讀了這一點。那么如何實作呢?
除非您以錯誤的方式濫用它,否則智能指標永遠不會無效。因此,無需檢查它是否有效。它應該為 null 或指向有效物件。
弱指標是一種特殊的智能指標,它不直接擁有物件,而是指向共享指標擁有的物件。當沒有共享指標指向它時,指向的物件可能會被銷毀。可以詢問弱指標是否發生了這種情況。這種狀態有點類似于無效,除了狀態是可驗證的。
那么如何實作呢?
您可以std::make_unique或std::make_shared創建一個智能指標所擁有的動態物件。它們之間的選擇取決于您需要什么樣的所有權:唯一的或共享的。弱指標只能從共享指標創建。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/480174.html
