gpt4 book ai didi

c++ - 指向 const 的成员指针

转载 作者:太空宇宙 更新时间:2023-11-04 12:32:56 24 4
gpt4 key购买 nike

我正在尝试使用交换习语来实现五规则。

但是,我有常量的内部成员字段。

我一开始尝试制作 const_cast,但据我所知,在这种情况下这可能是不可能的。

我得出的结论是,最好的方法是将成员字段转换为 ptr 到 const。

我试图通过初始化列表来做到这一点,但找不到正确的语法。以下不编译:

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

...

const double * _thresholdPtr;

我将感谢您的帮助,首先,如果 const 的 ptrs 是这种情况下的最佳方式,如果是,该怎么做。

谢谢!

编辑:我知道 const double* 不像 double * const。 但我想做的是收到一个双数,并且 将它作为 const double 附加到不是 const 的指针 (为了能够使用swap)

最佳答案

声明指针时,const 声明与数据类型相关的顺序很重要。 const double *_thresholdPtr; 创建一个可以指向但本身不能更改的 double 值。 double *const _thresholdPtr; 创建一个指向现有 double 的常量指针。

我不确定它是否有帮助,但我在一些代码中遇到了类似的问题。 This post helped me understand the difference.

编辑:正如下面的评论,区别在于声明指针的位置。

关于c++ - 指向 const 的成员指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57937530/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com