c++ - 应用于 const 和非常量对象的引用返回方法

标签 c++ constants

考虑以下代码:

class A{

  my_method(const B& b){
    import_something_from_c(this, b.getC()); // does some sort of copying
  }

}

class B{
  const C& getC() const { return c; };
}

function f(B b){
  b.getC().changeSomething();
}

因为 my_method 保证 const,b.getC() 也必须是 const。然而,在 f 中,我不保证常量,我确实想更改完全相同的 b.getC()。

是否有某种方法可以将对象的常量性传播到返回对其成员的引用的方法?

最佳答案

您需要提供 getC() 的非常量重载。例如

C& getC() { return c; };

关于c++ - 应用于 const 和非常量对象的引用返回方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24813598/

相关文章:

c++ - 如何避免调用 vector 中元素的复制构造函数

c++ - 常量有多少分配空间?

c++最终常量字符串

c++ - 什么是 char* const argv[]?

c++ - 为什么在此示例中使用 "const"?

c++ - 为什么 OpenCV 3.0 beta 中的目标检测去除了 scale cascade 和 canny pruning 功能?

c++ - 将Qt GUI拆分成多线程用于GUI、模拟、OpenGL是否可行?

c++ - 服务器日期时间与客户端日期时间

c++ - 普通的C++代码在一个测试项目中通过,而在主要项目中则失败

c - 反向打印字符串而不在代码中反转