C++不同的班级获取者

C++ different class getters

本文关键字:获取 C++      更新时间:2023-10-16

我对C++ OO 比较陌生:

这是怎么回事:

class A {
  B b;
public:
  B const &getB() const {
    return b;
  }
};

和这个不一样?

class A {
  B b;
public:
  const B &getB() const {
    return b;
  }
};

而这个呢?

class A {
  B b;
public:
  const B &getB() {
    return b;
  }
};

哪一个是正确的?

编辑这个问题在这里有一个答案:在 http://isocpp.org/wiki/faq/const-correctness#overview-const 中寻找"一致的常量"

关键字const适用于他面前的东西(在他的左边),或者,如果它前面没有任何东西,它适用于它之后的东西(在他的右边)。您的 3 个案例在使用中都是正确的。

您可以参考这篇优秀的文章来了解有关恒量正确性的更多信息: http://www.cprogramming.com/tutorial/const_correctness.html