Первый код:
class A
{
public:
...
int *foo() const
{
return _px;
}
private:
int *_px;
}
Функция-член foo
возвращает указатель не const для private
member _px
, который, я думаю, открывает дверь для изменения члена _px
, правильно?
Является foo
a const
функцией-членом? Должен ли я добавить const
перед типом возврата?
UPDATE
Что должна гарантировать функция const-member-функция, она не может изменить какой-либо элемент данных, правильно?
В моем случае функция foo
не открывает дверь для изменения class A
данных-члена _px
, но открывает дверь для изменения того, что указывает _px
. Так что мой вопрос заключается в том, что это нарушает то, что функция const должна гарантировать?