`const`到非`constst`或非`constst`到`c​​onst`

时间:2015-09-06 17:49:00

标签: c++ const

以下代码用于在同时存在const和非const getter时减少代码重复。它会从非const创建const版本。我对此进行了一些搜索,很多人都说我应该从const创建非const版本。

我的想法是,如果我从const版本创建非const版本,与下面的代码相反,则取消引用最初返回的指针或引用可能是不安全的{{ 1}}。我真的不确定这一点,所以我要求澄清,以及正确的方向是什么?

const

1 个答案:

答案 0 :(得分:3)

您应始终从non-const创建const版本,而不是以对等方式创建。解释很简单,这样想:

您只能在non-const对象上调用non-const getter。如果对象为non-const,您可以在const_cast方法中安全地const non-const获取者。为什么?因为您只能在non-const对象上调用此方法。

执行对等操作并不是很安全,因为在non-const中调用const方法无法保证时,会保留该常量。