c++ - 强制偏好 const 版本?

标签 c++

假设我有

class A {
  double a;
  double Value() const {
    return a;
  }

  double& Value() {
    return a;
  }

}

//later:
A foo;
double b = foo.Value();

现在,将调用非常量版本。 有没有一种强制使用 const 版本的好方法?我认为使用类型转换是可能的,但我认为这不是很优雅。

最佳答案

您可以将其转换为const

double b = static_cast<const A&>(foo).Value();

(我不认为我曾经显式地将 const 添加到变量中。我不确定 static_cast 是否比 const_cast.)

关于c++ - 强制偏好 const 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16841952/

相关文章:

c++ - 使用纯虚方法在C++中初始化抽象类

c++ - Ubuntu 和 Windows 的运行时间差异巨大?

c++ - 错误 : no matching function for call for function pointer

c++ - 静态和共享库符号冲突?

c++ - 了解 C++ 程序 [ Bjarne Stroustrup 的书 ]

c++ - WinHttpDetectAutoProxyConfigUrl 始终失败,错误代码为 12180 (ERROR_WINHTTP_AUTODETECTION_FAILED)

java - 限制 try block 范围。有关系吗?

c++ - 在 endl 上使用带有重载 << 运算符的 ofstream* 包装类

c++ - glsl解析器的boost wave或spirit

c++ - 从另一个类启动 QTimer