簡體   English   中英

const_cast模板參數中是否存在&mean

[英]what does the presence of & mean in const_cast template parameter

我正在討論以下示例

const int a = 12;
int b;
b = const_cast<int&>(a);  

我想知道上面的模板參數類型是什么&以及為什么沒有& ?它不會工作?

更新:

讓我重新解釋一下我的問題。 我理解它的參考,但它指的是什么變量? 例如在這里指出它指向引用原始(uncast)指針的指針。 我想知道這是什么引用櫃面非指針類型,以及如何能b BA引用時,它不是宣布作為參考?

const_cast不是模板,而是類型轉換。 似乎是模板參數的是轉換的目標類型,在這種情況下,它意味着您希望獲得對int的非const引用,該引用引用與a相同的對象。

aconst int&當你編寫const_cast時。

您只能使用const_cast修改指針和引用類型的cv限定符,而不能修改值。 這是因為為rvalues指定constness只有在引用或指針類型時才有意義,因此可以進行修改。

因此,如果您只想要變量a的(非常量)值,只需寫入即可

b = a;

因為無論如何都忽略了常數。 然后ba復制構造。

基本上a是const,b不是const

所以const_cast基本上說b存儲在a但刪除了const。

暫無
暫無

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

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