【发布时间】:2013-05-30 17:00:45
【问题描述】:
假设我有
class A {
double a;
double Value() const {
return a;
}
double& Value() {
return a;
}
}
//later:
A foo;
double b = foo.Value();
现在,将调用非常量版本。 有没有强制使用 const 版本的好方法?我认为有演员表是可能的,但我认为它不是很优雅。
【问题讨论】:
-
允许只有
const不同的重载的全部意义在于区分const对象与非const对象的调用。如果您不想要这种行为,请不要定义两个重载! (见parashift.com/c++-faq/const-overloading.html) -
@OliCharlesworth 不幸的是,我定义了 A 类,但我无法更改它
-
为什么不删除非常量版本?
-
您为什么要这样做?如果两个重载的语义差异足以满足这一要求,那么它们应该不是彼此的重载。
标签: c++