簡體   English   中英

指向const的成員指針

[英]member pointer to const

我正在嘗試使用交換慣用法來實現5條規則。

但是,我有內部成員字段是const。

我最初嘗試制作const_cast,但據我所知在這種情況下可能是不可能的。

我得出的結論是,最好的方法是將成員字段轉換為ptr到const。

我嘗試通過初始化列表執行此操作,但是找不到正確的語法。 以下內容無法編譯:

HashMap<KEY, VALUE>::HashMap(double threshold)
: *_thresholdPtr(threshold)

...

const double * _thresholdPtr;

如果您將ptrs指向const是這種情況下的最佳方法,那么我將不勝感激,如果可以,那么該如何做。

謝謝!

編輯:我知道const double *不像double * const。 但是我想做的是接收一個雙精度數,並將其作為const double附加到不是const的指針上(以便能夠使用交換)

在聲明指針時, const聲明相對於數據類型發生的順序很重要。 const double *_thresholdPtr; 創建一個可以指向的雙精度型,但本身不能更改。 double *const _thresholdPtr; 創建一個指向現有double的常量指針。

我不確定是否會有所幫助,但是我在一些代碼中遇到了類似的問題。 這篇文章幫助我了解了區別。

編輯:作為下面的注釋,不同之處在於指針的聲明位置。

暫無
暫無

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

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