[英]const in shared_ptr: do I need two or only one
我遇到了這段代碼:
const std::shared_ptr<const T>& a_shared_pointer,
我真的很好奇這兩個const是什么意思? 它們是同一意思嗎? a_shared_pointer是一個共享指針,指向我們無法修改的內容?
就解除引用和保持一致性而言,共享指針類似於原始指針。
請注意,在下面,術語[const]
表示我們可以選擇是否插入const:
[const] X * [const] p;
X* p;
-p是一個可變指針(可以更改為指向另一個X)
const X *p
-p是指向不可變X的可變指針
X * const p;
-p是指向可變X的不變指針(只能指向此X)
const X * const p;
-p是指向不變X的不變指針(只能指向此X)
std::shared_ptr<T> &p
引用指向可變T的可變指針
const std::shared_ptr<T> &p
指向可變T的不可變指針的引用
std::shared_ptr<const T> &p
指向不可變T的可變指針的引用
const std::shared_ptr<const T> &p
指向不可變T的不可變指針的引用
a_shared指針是對const std::shared_ptr
的引用(例如,您不能通過該引用對指針進行非const操作,例如reset
等),指向const T
意味着指向的對象也是const(再次,您不能執行a_shared_ptr->non_const_method()
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.