【发布时间】:2015-04-13 15:20:26
【问题描述】:
我对 C++ OO 比较陌生:
这个getter怎么样:
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中寻找“consistent const”
【问题讨论】:
-
1 和 2 的意思是一样的,而且都是正确的。 3 在技术上并非不正确,但是由于
getB()没有修改A实例,因此将函数设置为const是有意义的,这允许在const A对象实例(或引用等)上调用它.) -
感谢您的 cmets,但我认为这个问题有答案