【发布时间】:2012-06-23 01:30:25
【问题描述】:
按照 Scott Meyers 的说法,为了防止在 getter 的 const 版本和 getter 的非常量版本中重复代码,请从非常量版本调用方法的 const 版本:static_cast<const A&>(*this).Methodology(); 然而,由于过度使用 Visual Assist X Intellisense 导致意外使用,我输入了:const_cast<const A&>(*this).Methodology();,它工作得很好。
在这种情况下,使用特定演员表有什么不同?
使用的 IDE:Visual Studio 2010。
【问题讨论】:
-
我想知道为什么 Scott 提倡使用 static_cast 而 const_cast 似乎在这里更合适,也更清楚地表达了意图?还是您没有完全按照他的意思使用它?
-
@stijn:我也想知道同样的事情。
const_cast对我来说感觉稍微自然一些,即使是添加const的更安全的方向。 -
@CharlesBailey:看看我的回答,可能会明白他为什么不推广另一个。
-
@stijn:看看我的回答,可能会明白他为什么不推广另一个。
-
@Casey:这不是真的。在您引用的项目中,他专门选择
static_cast而不是const_cast以添加const到引用类型。我认为这是您所问问题的核心。
标签: c++ static-cast const-cast