Я относительно новый для OO C++:C++ различных методов получения класса
Как это добытчик:
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
1 и 2 означают то же самое, и оба являются правильными. 3 не является технически некорректным, однако, поскольку 'getB()' не модифицирует экземпляр 'A', имеет смысл для функции быть' const', что позволяет ей вызываться на экземплярах объекта 'const A' (или ссылки и т. д.) – Chad
спасибо за ваши комментарии, но я думаю, что у этого вопроса был ответ – lmiguelmh